aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/r300
Commit message (Collapse)AuthorAgeFilesLines
* r300/compiler: Refactor the pair instruction data structuresTom Stellard2010-09-204-38/+21
| | | | | | | | | | | Use rc_pair_ prefix for all pair instruction structs Create a named struct for pair instruction args Replace structs radeon_pair_instruction_{rgb,alpha} with struct radeon_pair_sub_instruction. These two structs were nearly identical and were creating a lot of cut and paste code. These changes are the first step towards removing some of that code.
* r300/compiler: fix warningsMarek Olšák2010-09-132-2/+3
|
* r300/compiler: Reorganize presub_helper()Tom Stellard2010-09-101-33/+27
|
* r300/compiler: Don't use presubtract in TEX instructionsTom Stellard2010-09-101-1/+6
|
* r300/compiler: Print the presub subtract operation in the correct orderTom Stellard2010-09-101-6/+6
|
* r300/compiler: Fix dataflow bug in presub_helper()Tom Stellard2010-09-101-0/+2
|
* r300/compiler: Replace asserts with error messagesTom Stellard2010-09-101-2/+10
|
* r300/compiler: Fix copy propigation for some presub instructionsTom Stellard2010-09-101-1/+1
|
* r300/compiler: Add peephole optimization for the 'sub' presubtract operationTom Stellard2010-09-101-8/+17
|
* r300/compiler: Add peephole optimization for the 'add' presubtract operationTom Stellard2010-09-102-84/+200
|
* r300/compiler: Clean up rc_pair_alloc_source()Tom Stellard2010-09-101-20/+12
|
* r300/compiler: Enable presubtract sourcesTom Stellard2010-09-1015-94/+1072
| | | | | | | The r300 compiler can now emit instructions that select from the presubtract source. A peephole optimization has been added to convert instructions like: ADD Temp[0].x, none.1, -Temp[1].x into the INV (1 - src0) presubtract operation.
* r300g,r300c: memset the compiler struct to zerosMarek Olšák2010-09-053-0/+3
| | | | This should fix bogus reports "Too many temporaries." and maybe some others.
* r300/compiler: Remove stray break statementTom Stellard2010-09-041-1/+0
| | | | This fixes glsl-fs-loop-nested.
* r300/compiler: fix the instruction limit in vertex shadersMarek Olšák2010-09-051-1/+1
| | | | | | Broken with commit d774b0c710bb7d833d17bd12f5151a0176baad96. Reported by Chris Rankin.
* r300/compiler: indent printed instructions according to the branch depthMarek Olšák2010-09-041-4/+44
|
* r300/compiler: use limits from the compiler input instead of inline constantsMarek Olšák2010-09-041-5/+4
|
* r300/compiler: improve register allocation with indexable temporaries for VSMarek Olšák2010-09-041-17/+46
| | | | | Register allocation can now reallocate temporaries right after the last indexed source operand, instead of being disabled for the whole shader.
* r300/compiler: fix handling of indexed temporaries in peepholeMarek Olšák2010-09-041-1/+9
|
* r300/compiler: disable deadcode elimination for indexed dst operandsMarek Olšák2010-09-041-0/+14
|
* r300/compiler: allocate at least FS inputs if register allocation is disabledMarek Olšák2010-09-043-9/+52
|
* r300g: add a new debug option which disables compiler optimizationsMarek Olšák2010-09-046-6/+13
| | | | | | | | | | | | 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.
* r300/compiler: compute the final number of temporaries during translationMarek Olšák2010-09-041-7/+23
| | | | | 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.
* r300/compiler: make optimizations not use 0.5 swizzles in vertex shadersMarek Olšák2010-09-045-1/+6
|
* r300/compiler: use peephole and constant folding for vertex shaders tooMarek Olšák2010-09-041-1/+3
|
* r300/compiler: remove unused enum OPCODE_REPL_ALPHAMarek Olšák2010-09-041-5/+0
| | | | We use RC_OPCODE_REPL_ALPHA instead.
* r300/compiler: refactor fragment shader compilationMarek Olšák2010-09-0419-165/+85
| | | | This cleans up the mess in r3xx_compile_fragment_program.
* r300/compiler: add new compiler parameter max_constantsMarek Olšák2010-09-046-10/+16
|
* r300/compiler: refactor vertex shader compilationMarek Olšák2010-09-0418-161/+140
| | | | | | 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.
* r300/compiler: remove a redundant parameter in rc_pair_regallocMarek Olšák2010-09-043-3/+4
|
* r300/compiler: remove a redundant parameter in rc_dataflow_deadcodeMarek Olšák2010-09-044-5/+5
| | | | &c->Base == c.
* r300/compiler: use null-terminated array of transformation functionsMarek Olšák2010-09-044-15/+20
| | | | | I need to reduce the number of parameters of each compiler pass function. This is part of a larger cleanup.
* r300/compiler: add new compiler parameter max_alu_instsMarek Olšák2010-09-0410-35/+36
|
* r300/compiler: put emulate_loop_state in radeon_compilerMarek Olšák2010-09-047-24/+20
|
* r300: Remove unnecessary header.Vinson Lee2010-08-251-1/+0
|
* r300/compiler: emulate relative addressing with negative offsets in VSMarek Olšák2010-08-251-0/+74
| | | | 3 more piglits, cool.
* r300/compiler: Silence uninitialized variable warning.Vinson Lee2010-08-241-5/+11
| | | | | | | | | | | | The variable loops would be used uninitialized if it ever processed a RC_OPCODE_ENDLOOP case first. This patch initalizes the loops variable to NULL and adds an assert at the RC_OPCODE_ENDLOOP case that loops isn't NULL. Silence the following GCC warning. r3xx_vertprog.c: In function 'translate_vertex_program': r3xx_vertprog.c:469: warning: 'loops' may be used uninitialized in this function
* r300g: Add missing comma in SConscript.Vinson Lee2010-08-241-1/+1
| | | | | | | This is a follow-on patch to commit 574ba4b5f50bfe661427327cd792a8a200559376. Fixes r300g SCons build.
* r300/compiler: implement elimination of unused constantsMarek Olšák2010-08-258-1/+189
| | | | | Wine likes to create a *lot* of constants, exceeding the size of the constant file in hw.
* r300/compiler: terminate vertex shader compilation immediately after an errorMarek Olšák2010-08-251-36/+56
| | | | Also rename "compiler" to "c".
* r300/compiler: fail to compile if we hit hw limits or an unimplemented featureMarek Olšák2010-08-253-0/+62
| | | | | i.e. relative addressing (mainly FS), saturate modifiers, exceeding the maximum number of constants.
* r300/compiler: handle indexable temporaries correctly in deadcode eliminationMarek Olšák2010-08-251-1/+30
|
* r300/compiler: disable register allocation for indexable temporaries in VSMarek Olšák2010-08-251-5/+25
| | | | | | | If there is relative addressing of temporaries, we cannot change register indices, so skip register allocation entirely. To utilize register allocation at least partially, we need separate indexable and non-indexable register files in both TGSI and Mesa IR.
* r300/compiler: implement DP2 opcodeMarek Olšák2010-08-163-9/+47
|
* r300/compiler: implement SSG opcodeMarek Olšák2010-08-163-0/+84
|
* r300/compiler: fix allocation of temporaries in radeonTransformTEXMarek Olšák2010-08-161-2/+6
|
* r300/compiler: remove an unused variableMarek Olšák2010-08-121-1/+0
|
* r300/compiler: Implement the CONT opcode.Tom Stellard2010-08-114-7/+20
|
* r300/compiler: Handle loops in the register allocator.Tom Stellard2010-08-111-4/+34
|
* r300g: implement gl_FrontFacingMarek Olšák2010-08-112-0/+44
|