Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-09-29 | r300/compiler: Move declaration before code. | Vinson Lee | |
Fixes this GCC warning on linux-x86 build. radeon_emulate_loops.c: In function ‘rc_emulate_loops’: radeon_emulate_loops.c:517: warning: ISO C90 forbids mixed declarations and code | |||
2010-09-28 | r300/compiler: Don't use rc_error() unless the error is unrecoverable | Tom Stellard | |
https://bugs.freedesktop.org/show_bug.cgi?id=30416 NOTE: This is a candidate for the 7.9 branch. | |||
2010-09-04 | r300/compiler: refactor fragment shader compilation | Marek Olšák | |
This cleans up the mess in r3xx_compile_fragment_program. | |||
2010-09-04 | r300/compiler: refactor vertex shader compilation | Marek 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-04 | r300/compiler: add new compiler parameter max_alu_insts | Marek Olšák | |
2010-09-04 | r300/compiler: put emulate_loop_state in radeon_compiler | Marek Olšák | |
2010-08-10 | r300/compiler: Implement hardware assisted loops for vertex shaders. | Tom Stellard | |
Single loops work, but nested loops do not. | |||
2010-08-10 | r300/compiler: Correctly transform nested loops. | Tom Stellard | |
2010-08-03 | r300/compiler: Always unroll loops when doing loop emulation. | Tom Stellard | |
2010-08-03 | r300/compiler: r500 hw support for break and continue in loops. | Tom Stellard | |
The BGNLOOP and ENDLOOP instructions are now being used correctly, which makes break and continue possible. The deadcode pass has been modified to handle breaks, and the compiler is more careful about which loops are unrolled. | |||
2010-08-03 | r300/compiler: Don't unroll loops with continue or break. | Tom Stellard | |
2010-07-03 | r300/compiler: Fix loop unrolling | Tom Stellard | |
2010-07-03 | r300/compiler: Correctly calculate the max number of iterations for loops. | Tom Stellard | |
2010-07-03 | r300/compiler: Handle loops in deadcode analysis. | Tom Stellard | |
This also allows us to split the loop emulation into two phases. A tranformation phase which either unrolls loops or prepares them to be emulated, and the emulation phase which unrolls remaining loops until the instruction limit is reached. The second phase is completed after the deadcode analysis in order to get a more accurate count of the number of instructions in the body of loops. | |||
2010-06-11 | r300/compiler: Handle more complex conditionals in loops. | Tom Stellard | |
2010-06-11 | r300/compiler: Fix warning. | Tom Stellard | |
2010-06-11 | r300/compiler: Handle SGT and SLE at the beginning of loops. | Tom Stellard | |
2010-06-11 | r300/compiler: Verify assumptions about opcode types. | Tom Stellard | |
2010-06-11 | r300/compiler: Unroll loops that decrement the counter. | Tom Stellard | |
e.g. for(i=10; i>0; i--) | |||
2010-06-11 | r300/compiler: Unroll loops that have a constant number of iterations. | Tom Stellard | |
This only works with for loops that increment the counter. e.g. for(i=0; i<10; i++) | |||
2010-06-11 | r300/compiler: Implement simple loop emulation | Tom Stellard | |
The loop emulation unrolls loops as may times as possbile while still keeping the shader program below the maximum instruction limit. At this point, there are no checks for constant conditionals. This is only enabled for fragment shaders. |