summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-09-05nvfx: switch to rules-ng-ng register headersLuca Barbieri
This is the new register generation toolkit in use by nouveau. As far as I know, this is the best register description toolkit in existence, and you should use it too for your hardware :) Thanks to Marcin Kościelnicki for inventing it and performing invaluable reverse engineering work of nVidia chips.
2010-09-05nvfx: remove remaining BEGIN_RING/eng3d usesLuca Barbieri
2010-09-05nvfx: pause occlusion queries during blitter usageLuca Barbieri
Thanks for Dave Airlie and Jerome Glisse for their code which made me realize I need this too.
2010-09-05nvfx: properly return fogcoord.w == 1Luca Barbieri
Hardware sets it to 0, so we add an ADD to put an 1 there if the application really wants the alpha channel.
2010-09-05nvfx: support saturate in vpLuca Barbieri
Completely untested, since Mesa apparently never uses this currently. In particular, it might not work with scalar slot op.
2010-09-05nvfx: add rewritten swtnl supportLuca Barbieri
The old swtnl code was broken by the new shader linkage support for GLSL. This is a rewrite of swtnl support, which should instead work properly, be faster and more closer to the much more tested hardware pipeline.
2010-09-05nvfx: use a piglit-ignored format for unknown cap messageLuca Barbieri
2010-09-05llvmpipe: Remove some broken MinGW hacks in the sin/cos reference code.José Fonseca
2010-09-05glsl: Add new files to sconscript.José Fonseca
2010-09-05llvmpipe: Fix perspective divide interpolation.José Fonseca
Intuition != mathematics, so this time I actually worked out the right formula for first order approximation of perspective interpolation. Ironically, per quad divide actually makes things slower when compared with per pixel divide -- probably because the divide hardware unit is rarely used, whereas the multiply unit is typically already saturated and the first order approximation imply more multiplications.
2010-09-05util: Helper function to determined whether two formats can be memcpy'ed.José Fonseca
These are the non-trivial conversions that this function recognizes, which was produced by u_format_compatible_test.c: b8g8r8a8_unorm -> b8g8r8x8_unorm a8r8g8b8_unorm -> x8r8g8b8_unorm b5g5r5a1_unorm -> b5g5r5x1_unorm b4g4r4a4_unorm -> b4g4r4x4_unorm l8_unorm -> r8_unorm i8_unorm -> l8_unorm i8_unorm -> a8_unorm i8_unorm -> r8_unorm l16_unorm -> r16_unorm z24_unorm_s8_uscaled -> z24x8_unorm s8_uscaled_z24_unorm -> x8z24_unorm r8g8b8a8_unorm -> r8g8b8x8_unorm a8b8g8r8_srgb -> x8b8g8r8_srgb b8g8r8a8_srgb -> b8g8r8x8_srgb a8r8g8b8_srgb -> x8r8g8b8_srgb a8b8g8r8_unorm -> x8b8g8r8_unorm r10g10b10a2_uscaled -> r10g10b10x2_uscaled r10sg10sb10sa2u_norm -> r10g10b10x2_snorm State trackers and pipe drivers should be updated to take advantage of this knowledge, e.g., in surface_copy.
2010-09-05llvmpipe: Relax the colormask constraint on opaque.José Fonseca
Also, include the color buffer in the key. Not having it there causes a tight knots in the logic to determine when it is OK or not to discard previous color buffer contents.
2010-09-05util: Utility function to determine the channels that can be written in a ↵José Fonseca
color format.
2010-09-05scons: Re-enable SSE on MinGW.José Fonseca
It seems to be working correctly with gcc 4.4, and enabling it allows to test some of the llvmpipe instrinsics on Windows.
2010-09-05gallivm: Pass condition masks as an unsigned bitmask.José Fonseca
Much more convenient than boolean arrays.
2010-09-05gallivm: Cope with tgsi instruction reallocation failure.José Fonseca
2010-09-05ir_reader: Only validate IR when a global 'debug' flag is set.Kenneth Graunke
This extra validation is very useful when working on the built-ins, but in general overkill - the results should stay the same unless the built-ins or ir_validate have changed. Also, validating all the built-in functions in every test case makes piglit run unacceptably slow.
2010-09-05r300g,r300c: memset the compiler struct to zerosMarek Olšák
This should fix bogus reports "Too many temporaries." and maybe some others.
2010-09-04r300/compiler: Remove stray break statementTom Stellard
This fixes glsl-fs-loop-nested.
2010-09-05nvfx: support unlimited constants and immediates in fpLuca Barbieri
2010-09-05nvfx: support using blitter to copy depth/stencil resources, fix HeavenLuca Barbieri
We might want to copy them as color ones though. Also works around crash in Unigine Heaven due to failing to allocate a 64 MB temporary in GART for a CPU copy. Unigine Heaven now works on nv40, albeit with very heavy glitches (with the floating branch with render_hdr 0).
2010-09-05r300/compiler: fix the instruction limit in vertex shadersMarek Olšák
Broken with commit d774b0c710bb7d833d17bd12f5151a0176baad96. Reported by Chris Rankin.
2010-09-04nvfx: support rendering to more formatsLuca Barbieri
2010-09-04nvfx: move 2D format selection logic to 2D codeLuca Barbieri
2010-09-04nvfx: fix swizzling of high bpp surfacesLuca Barbieri
2010-09-04nvfx: fix some subrectangle copiesLuca Barbieri
Actually, we may want to get rid of the x/y coordinates for linear surfaces, and realign the origin from scratch if necessary, instead of doing this "on-demand realignment".
2010-09-04nvfx: fix inlinining in nv04_2d.cLuca Barbieri
2010-09-04nvfx: fix the temporary copying logic and add assertsLuca Barbieri
2010-09-04nvfx: prevent swizzled rendering into formats where it's not supportedLuca Barbieri
2010-09-04Revert "ir_to_mesa: Load all the STATE_VAR elements of a builtin uniform to ↵Marek Olšák
a temp." This reverts commit 5ad74779cea07cc6a19a52874cdaef8b018e2f1b. Sorry, but I had to revert this. Any commit which needlessly increases the number of temporaries is wrong. More temporaries mean less shader performance because of reduced parallelism and therefore less efficient latency hiding. In this case, there is possible performance degradation of every shader which uses GL state variables. I cannot accept this.
2010-09-04Revert "r300g: refuse to create a texture with size 0"Marek Olšák
This reverts commit 5cdedaaf295acae13ac10feeb3143d83bc53d314. https://bugs.freedesktop.org/show_bug.cgi?id=30002 Conflicts: src/gallium/drivers/r300/r300_texture.c
2010-09-04r300g: remove unnecessary assignmentsMarek Olšák
2010-09-04r300/compiler: indent printed instructions according to the branch depthMarek Olšák
2010-09-04r300g: skip draw calls with no vertex elements, fixing hardlocksMarek Olšák
2010-09-04r300/compiler: use limits from the compiler input instead of inline constantsMarek Olšák
2010-09-04r300/compiler: improve register allocation with indexable temporaries for VSMarek Olšák
Register allocation can now reallocate temporaries right after the last indexed source operand, instead of being disabled for the whole shader.
2010-09-04r300/compiler: fix handling of indexed temporaries in peepholeMarek Olšák
2010-09-04r300/compiler: disable deadcode elimination for indexed dst operandsMarek Olšák
2010-09-04r300/compiler: allocate at least FS inputs if register allocation is disabledMarek Olšák
2010-09-04r300g: add a new debug option which disables compiler optimizationsMarek Olšák
Those are: - dead-code elimination - constant folding - peephole (mainly copy propagation) - register allocation There are some bugs which I need to track down. Also fix up the descriptions of all the debug options.
2010-09-04r300/compiler: compute the final number of temporaries during translationMarek Olšák
And not during the register allocation, which may be skipped for debugging purposes. Also the predicate register is now added to the number of temps.
2010-09-04r300/compiler: make optimizations not use 0.5 swizzles in vertex shadersMarek Olšák
2010-09-04r300/compiler: use peephole and constant folding for vertex shaders tooMarek Olšák
2010-09-04r300/compiler: remove unused enum OPCODE_REPL_ALPHAMarek Olšák
We use RC_OPCODE_REPL_ALPHA instead.
2010-09-04r300/compiler: refactor fragment shader compilationMarek Olšák
This cleans up the mess in r3xx_compile_fragment_program.
2010-09-04r300/compiler: add new compiler parameter max_constantsMarek Olšák
2010-09-04r300/compiler: refactor vertex shader compilationMarek Olšák
First list compiler passes in an array, then run the new function rc_run_compiler. Every backend may need a different set of passes. This cleans up the mess in r3xx_compile_vertex_program.
2010-09-04r300/compiler: remove a redundant parameter in rc_pair_regallocMarek Olšák
2010-09-04r300/compiler: remove a redundant parameter in rc_dataflow_deadcodeMarek Olšák
&c->Base == c.
2010-09-04r300/compiler: use null-terminated array of transformation functionsMarek Olšák
I need to reduce the number of parameters of each compiler pass function. This is part of a larger cleanup.