Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | r300/compiler: Refactor the pair instruction data structures | Tom Stellard | 2010-09-20 | 4 | -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 warnings | Marek Olšák | 2010-09-13 | 2 | -2/+3 |
| | |||||
* | r300/compiler: Reorganize presub_helper() | Tom Stellard | 2010-09-10 | 1 | -33/+27 |
| | |||||
* | r300/compiler: Don't use presubtract in TEX instructions | Tom Stellard | 2010-09-10 | 1 | -1/+6 |
| | |||||
* | r300/compiler: Print the presub subtract operation in the correct order | Tom Stellard | 2010-09-10 | 1 | -6/+6 |
| | |||||
* | r300/compiler: Fix dataflow bug in presub_helper() | Tom Stellard | 2010-09-10 | 1 | -0/+2 |
| | |||||
* | r300/compiler: Replace asserts with error messages | Tom Stellard | 2010-09-10 | 1 | -2/+10 |
| | |||||
* | r300/compiler: Fix copy propigation for some presub instructions | Tom Stellard | 2010-09-10 | 1 | -1/+1 |
| | |||||
* | r300/compiler: Add peephole optimization for the 'sub' presubtract operation | Tom Stellard | 2010-09-10 | 1 | -8/+17 |
| | |||||
* | r300/compiler: Add peephole optimization for the 'add' presubtract operation | Tom Stellard | 2010-09-10 | 2 | -84/+200 |
| | |||||
* | r300/compiler: Clean up rc_pair_alloc_source() | Tom Stellard | 2010-09-10 | 1 | -20/+12 |
| | |||||
* | r300/compiler: Enable presubtract sources | Tom Stellard | 2010-09-10 | 15 | -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 zeros | Marek Olšák | 2010-09-05 | 3 | -0/+3 |
| | | | | This should fix bogus reports "Too many temporaries." and maybe some others. | ||||
* | r300/compiler: Remove stray break statement | Tom Stellard | 2010-09-04 | 1 | -1/+0 |
| | | | | This fixes glsl-fs-loop-nested. | ||||
* | r300/compiler: fix the instruction limit in vertex shaders | Marek Olšák | 2010-09-05 | 1 | -1/+1 |
| | | | | | | Broken with commit d774b0c710bb7d833d17bd12f5151a0176baad96. Reported by Chris Rankin. | ||||
* | r300/compiler: indent printed instructions according to the branch depth | Marek Olšák | 2010-09-04 | 1 | -4/+44 |
| | |||||
* | r300/compiler: use limits from the compiler input instead of inline constants | Marek Olšák | 2010-09-04 | 1 | -5/+4 |
| | |||||
* | r300/compiler: improve register allocation with indexable temporaries for VS | Marek Olšák | 2010-09-04 | 1 | -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 peephole | Marek Olšák | 2010-09-04 | 1 | -1/+9 |
| | |||||
* | r300/compiler: disable deadcode elimination for indexed dst operands | Marek Olšák | 2010-09-04 | 1 | -0/+14 |
| | |||||
* | r300/compiler: allocate at least FS inputs if register allocation is disabled | Marek Olšák | 2010-09-04 | 3 | -9/+52 |
| | |||||
* | r300g: add a new debug option which disables compiler optimizations | Marek Olšák | 2010-09-04 | 6 | -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 translation | Marek Olšák | 2010-09-04 | 1 | -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 shaders | Marek Olšák | 2010-09-04 | 5 | -1/+6 |
| | |||||
* | r300/compiler: use peephole and constant folding for vertex shaders too | Marek Olšák | 2010-09-04 | 1 | -1/+3 |
| | |||||
* | r300/compiler: remove unused enum OPCODE_REPL_ALPHA | Marek Olšák | 2010-09-04 | 1 | -5/+0 |
| | | | | We use RC_OPCODE_REPL_ALPHA instead. | ||||
* | r300/compiler: refactor fragment shader compilation | Marek Olšák | 2010-09-04 | 19 | -165/+85 |
| | | | | This cleans up the mess in r3xx_compile_fragment_program. | ||||
* | r300/compiler: add new compiler parameter max_constants | Marek Olšák | 2010-09-04 | 6 | -10/+16 |
| | |||||
* | r300/compiler: refactor vertex shader compilation | Marek Olšák | 2010-09-04 | 18 | -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_regalloc | Marek Olšák | 2010-09-04 | 3 | -3/+4 |
| | |||||
* | r300/compiler: remove a redundant parameter in rc_dataflow_deadcode | Marek Olšák | 2010-09-04 | 4 | -5/+5 |
| | | | | &c->Base == c. | ||||
* | r300/compiler: use null-terminated array of transformation functions | Marek Olšák | 2010-09-04 | 4 | -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_insts | Marek Olšák | 2010-09-04 | 10 | -35/+36 |
| | |||||
* | r300/compiler: put emulate_loop_state in radeon_compiler | Marek Olšák | 2010-09-04 | 7 | -24/+20 |
| | |||||
* | r300: Remove unnecessary header. | Vinson Lee | 2010-08-25 | 1 | -1/+0 |
| | |||||
* | r300/compiler: emulate relative addressing with negative offsets in VS | Marek Olšák | 2010-08-25 | 1 | -0/+74 |
| | | | | 3 more piglits, cool. | ||||
* | r300/compiler: Silence uninitialized variable warning. | Vinson Lee | 2010-08-24 | 1 | -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 Lee | 2010-08-24 | 1 | -1/+1 |
| | | | | | | | This is a follow-on patch to commit 574ba4b5f50bfe661427327cd792a8a200559376. Fixes r300g SCons build. | ||||
* | r300/compiler: implement elimination of unused constants | Marek Olšák | 2010-08-25 | 8 | -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 error | Marek Olšák | 2010-08-25 | 1 | -36/+56 |
| | | | | Also rename "compiler" to "c". | ||||
* | r300/compiler: fail to compile if we hit hw limits or an unimplemented feature | Marek Olšák | 2010-08-25 | 3 | -0/+62 |
| | | | | | i.e. relative addressing (mainly FS), saturate modifiers, exceeding the maximum number of constants. | ||||
* | r300/compiler: handle indexable temporaries correctly in deadcode elimination | Marek Olšák | 2010-08-25 | 1 | -1/+30 |
| | |||||
* | r300/compiler: disable register allocation for indexable temporaries in VS | Marek Olšák | 2010-08-25 | 1 | -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 opcode | Marek Olšák | 2010-08-16 | 3 | -9/+47 |
| | |||||
* | r300/compiler: implement SSG opcode | Marek Olšák | 2010-08-16 | 3 | -0/+84 |
| | |||||
* | r300/compiler: fix allocation of temporaries in radeonTransformTEX | Marek Olšák | 2010-08-16 | 1 | -2/+6 |
| | |||||
* | r300/compiler: remove an unused variable | Marek Olšák | 2010-08-12 | 1 | -1/+0 |
| | |||||
* | r300/compiler: Implement the CONT opcode. | Tom Stellard | 2010-08-11 | 4 | -7/+20 |
| | |||||
* | r300/compiler: Handle loops in the register allocator. | Tom Stellard | 2010-08-11 | 1 | -4/+34 |
| | |||||
* | r300g: implement gl_FrontFacing | Marek Olšák | 2010-08-11 | 2 | -0/+44 |
| |