summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300
AgeCommit message (Collapse)Author
2011-03-12r300/compiler: do not set TEX_IGNORE_UNCOVERED on r500Marek Olšák
The docs say it can be set for direct texture lookups, but even that causes problems. This fixes the wireframe bug: https://bugs.freedesktop.org/show_bug.cgi?id=32688 NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-03-12r300/compiler: TEX instructions don't support negation on source argumentsMarek Olšák
This fixes piglit: - glsl-fs-texture2d-dependent-4 NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-03-12r300/compiler: Abs doesn't cancel Negate (in the conversion to native swizzles)Marek Olšák
NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-03-12r300/compiler: fix translating the src negate bits in pair_translateMarek Olšák
(1, -_, ...) was converted to (-1, ...) because of the negation in the second component. Masking out the unused bits fixes this. Piglit: - glsl-fs-texture2d-branching NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-03-12r300g: implement fragment color clamping in the shaderMarek Olšák
This finishes the implementation of the fragment color clamp control for ARB_color_buffer_float. I don't wanna keep this stuff in a branch...
2011-03-12r300/compiler: fix the saturate modifier when applied to TEX instructionsMarek Olšák
This bug can only be triggered if the source texture is either signed or float.
2011-03-11mesa: replace NEED_SECONDARY_COLOR(), RGBA_LOGICOP_ENABLED() with inlinesBrian Paul
and rename them.
2011-03-08r300/compiler: remove unused variablesMarek Olšák
2011-03-08r300/compiler: fix equal and notequal shadow compare functionsMarek Olšák
2011-03-08r300/compiler: detect constants harderMarek Olšák
2011-03-08r300/compiler: improve the detection of constants for constant foldingMarek Olšák
Now the expression V==0 generates one instruction instead of two.
2011-03-08r300/compiler: saturate Z before the shadow comparisonMarek Olšák
This fixes: https://bugs.freedesktop.org/show_bug.cgi?id=31159 NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-11r300/compiler: Don't erase sources when converting RGB->AlphaTom Stellard
https://bugs.freedesktop.org/show_bug.cgi?id=34030 NOTE: This is a candidate for the 7.10 branch.
2011-02-05r300/compiler: Disable register rename pass on r500Tom Stellard
The scheduler and the register allocator are not good enough yet to deal with the effects of the register rename pass. This was causing a 50% performance drop in Lightsmark. The pass can be re-enabled once the scheduler and the register allocator are more mature. r300 and r400 still need this pass, because it prevents a lot of shaders from using too many texture indirections. NOTE: This is a candidate for the 7.10 branch.
2011-02-05r300/compiler: Don't count BEGIN_TEX instructions in the compiler statsTom Stellard
2011-02-03r300c: Unbreak after R4xx support was added to r300/compiler.Michel Dänzer
2011-01-29r300/compiler: Standardize the number of bits used by swizzle fieldsTom Stellard
Swizzles are now defined everywhere as a field with 12 bits that contains 4 channels worth of meaningful information. Any channel that is unused is set to RC_SWIZZLE_UNUSED. This change is necessary because rgb instructions and alpha instructions were initializing channels that would never be used (channel 3 for rgb and channels 1-3 for alpha) with 0 (aka RC_SWIZZLE_X). This made it impossible to use generic helper functions for swizzles, because sometimes a channel value of 0 meant unused and other times it meant RC_SWIZZLE_X. All hacks that tried to guess how many channels were relevant have also been removed.
2011-01-28r300/compiler: print stats based on the initial number of instructionsMarek Olšák
The same number of shaders is now printed regardless of optimizations being enabled or not, so that we can compare shader stats side by side easily.
2011-01-23r300g: Increase fragment shader limits for r400 cardsTom Stellard
r400 fragment shaders now support up to 64 temporary registers, 512 ALU instructions, and 512 TEX instructions.
2011-01-23r300/compiler: remove any code related to relative addressing of temporariesMarek Olšák
The hw can't do it and the code was useless anyway (it's lowered in the GLSL compiler).
2011-01-15mesa: begin implementation of GL_ARB_draw_buffers_blendBrian Paul
2011-01-09r300: Include mfeatures.h in files that perform feature tests.Vinson Lee
2011-01-04r300/compiler: disable the rename_regs pass for loopsMarek Olšák
This workaround fixes rendering of kwin thumbnails. NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-01-04r300/compiler: Fix black terrain in Civ4Tom Stellard
rc_inst_can_use_presub() wasn't checking for too many RGB sources in Alpha instructions or too many Alpha sources in RGB instructions. Note: This is a candidate for the 7.10 branch.
2010-12-11r300/compiler: fix swizzle lowering with a presubtract source operandMarek Olšák
If a source operand has a non-native swizzle (e.g. the KIL instruction cannot have a swizzle other than .xyzw), the lowering pass uses one or more MOV instructions to move the operand to an intermediate temporary with native swizzles. This commit fixes that the presubtract information was lost during the lowering. NOTE: This is a candidate for both the 7.9 and 7.10 branches.
2010-12-11r300/compiler: fix LIT in VSMarek Olšák
This fixes broken rendering of trees in ETQW. The trees still disappear for an unknown reason when they are close. Broken since: 2ff9d4474bdf5f05852ad4963d0b597d20743678 r300/compiler: make lowering passes possibly use up to two less temps NOTE: This is a candidate for the 7.10 branch.
2010-12-08r300/compiler: remove at least unused immediates if externals cannot be removedMarek Olšák
2010-12-08r300/compiler: make lowering passes possibly use up to two less tempsMarek Olšák
CMP may now use two less temps, other non-native instructions may end up using one less temp, except for SIN/COS/SCS, which I am leaving unchanged for now. This may reduce register pressure inside loops, because the register allocator doesn't do a very good job there.
2010-12-08r300/compiler: handle DPH and XPD in rc_compute_sources_for_writemaskMarek Olšák
This bug can only be triggered if you put deadcode before native rewrite.
2010-12-08r300/compiler: do not print pair/tex/presub program stats for vertex shadersMarek Olšák
2010-12-08r300/compiler: cleanup rc_run_compilerMarek Olšák
2010-12-08r300/compiler: add a function to query program stats (alu, tex, temps..)Marek Olšák
2010-12-08r300/compiler: don't terminate regalloc if we surpass max temps limitMarek Olšák
The same check is already in a later pass (translate_vertex_program).
2010-12-02r300/compiler: disable the swizzle lowering pass in vertex shadersMarek Olšák
It was a no-op because all swizzles are native there.
2010-12-01r300/compiler: implement and lower OPCODE_CLAMPMarek Olšák
Needed for st/vega.
2010-11-26r300/compiler: move util functions to radeon_compiler_utilMarek Olšák
The compiler seriously needs a cleanup as far as the arrangement of functions is concerned. It's hard to know whether some function was implemented or not because there are so many places to search in and it can be anywhere and named anyhow.
2010-11-26r300/compiler: add a function for swizzling a maskMarek Olšák
2010-11-26r300/compiler: remove duplicate function rc_mask_to_swzMarek Olšák
2010-11-26r300/compiler: fix rc_rewrite_depth_out for it to work with any instructionMarek Olšák
It looks like the function was originally written for ARB_fragment_program. NOTE: This is a candidate for the 7.9 branch.
2010-11-24r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning with linux-x86 build. radeon_pair_regalloc.c: In function ‘compute_live_intervals’: radeon_pair_regalloc.c:222: warning: ISO C90 forbids mixed declarations and code
2010-11-24r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning with linux-x86 build. radeon_pair_regalloc.c: In function ‘compute_live_intervals’: radeon_pair_regalloc.c:221: warning: ISO C90 forbids mixed declarations and code
2010-11-23r300/compiler: Don't allow presubtract sources to be remapped twiceTom Stellard
https://bugs.freedesktop.org/show_bug.cgi?id=31193 NOTE: This is a candidate for the 7.9 branch.
2010-11-21r300/compiler: Add a more efficient version of rc_find_free_temporary()Tom Stellard
2010-11-21r300/compiler: Enable rename_reg pass for r500 cardsTom Stellard
In addition, the rename_reg pass has been rewritten to use rc_get_readers().
2010-11-21r300/compiler: Use presubtract operations as much as possibleTom Stellard
Previously, presubtract operations where only being used by instructions with less than three source source registers.
2010-11-21r300/compiler: Convert RGB to alpha in the schedulerTom Stellard
2010-11-21r300/compiler: Track readers through branches in rc_get_readers()Tom Stellard
2010-11-21r300/compiler: Handle BREAK and CONTINUE in rc_get_readers()Tom Stellard
2010-11-21r300/compiler: Add rc_get_readers()Tom Stellard
2010-11-21r300/compiler: Ignore alpha dest register when replicating the resultTom Stellard
When the result of the alpha instruction is being replicated to the RGB destination register, we do not need to use alpha's destination register. This fixes an invalid "Too many hardware temporaries used" error in the case where a transcendent operation writes to a temporary register greater than max_temp_regs. NOTE: This is a candidate for the 7.9 branch.