Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-08-25 | r300/compiler: emulate relative addressing with negative offsets in VS | Marek Olšák | |
3 more piglits, cool. | |||
2010-08-24 | r300/compiler: Silence uninitialized variable warning. | Vinson Lee | |
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 | |||
2010-08-24 | r300g: Add missing comma in SConscript. | Vinson Lee | |
This is a follow-on patch to commit 574ba4b5f50bfe661427327cd792a8a200559376. Fixes r300g SCons build. | |||
2010-08-25 | r300/compiler: implement elimination of unused constants | Marek Olšák | |
Wine likes to create a *lot* of constants, exceeding the size of the constant file in hw. | |||
2010-08-25 | r300/compiler: terminate vertex shader compilation immediately after an error | Marek Olšák | |
Also rename "compiler" to "c". | |||
2010-08-25 | r300/compiler: fail to compile if we hit hw limits or an unimplemented feature | Marek Olšák | |
i.e. relative addressing (mainly FS), saturate modifiers, exceeding the maximum number of constants. | |||
2010-08-25 | r300/compiler: handle indexable temporaries correctly in deadcode elimination | Marek Olšák | |
2010-08-25 | r300/compiler: disable register allocation for indexable temporaries in VS | Marek Olšák | |
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. | |||
2010-08-16 | r300/compiler: implement DP2 opcode | Marek Olšák | |
2010-08-16 | r300/compiler: implement SSG opcode | Marek Olšák | |
2010-08-16 | r300/compiler: fix allocation of temporaries in radeonTransformTEX | Marek Olšák | |
2010-08-12 | r300/compiler: remove an unused variable | Marek Olšák | |
2010-08-11 | r300/compiler: Implement the CONT opcode. | Tom Stellard | |
2010-08-11 | r300/compiler: Handle loops in the register allocator. | Tom Stellard | |
2010-08-11 | r300g: implement gl_FrontFacing | Marek Olšák | |
2010-08-10 | r300/compiler: Use predicate bit for IF statements in r500 vertex shaders | Tom Stellard | |
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-04 | r300/compiler: Remove unnecessary header. | Vinson Lee | |
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: KILP may not always be inside an IF statement. | Tom Stellard | |
2010-08-03 | r300/compiler: Don't unroll loops with continue or break. | Tom Stellard | |
2010-07-14 | r300/compiler: fix swizzling in the transformation of Abs modifiers | Marek Olšák | |
2010-07-13 | r300/compiler: implement the Abs source operand modifier for vertex shaders | Marek Olšák | |
2010-07-13 | r300/compiler: emulate SIN/COS/SCS in r3xx-r4xx vertex shaders | Marek Olšák | |
Despite the docs, the corresponding hardware instructions are r5xx-only. | |||
2010-07-08 | r300/compiler: Add a register rename pass. | Tom Stellard | |
This pass renames register in order to make it easier for the pair scheduler to group TEX instructions together. This fixes fdo bug #28606 | |||
2010-07-08 | r300/compiler: Fix scheduling of TEX instructions. | Tom Stellard | |
The following instruction sequence will no longer be emitted in separate TEX blocks: 0: TEX temp[0].xyz, temp[1].xy__, 2D[0]; 1: TEX temp[1].xyz, temp[2].xy__, 2D[0]; This fixes fdo bug #25109 | |||
2010-07-06 | r300/compiler: Implement KILP opcode. | Tom Stellard | |
Signed-off-by: Marek Olšák <maraeo@gmail.com> | |||
2010-07-03 | r300/compiler: Fix loop unrolling | Tom Stellard | |
2010-07-03 | r300/compiler: Use hardware flow control instructions for loops on r500. | Tom Stellard | |
2010-07-03 | r300/compiler: Don't continue copy propagation inside loops. | Tom Stellard | |
2010-07-03 | r300/compiler: Print debug info for flow control instructions. | Tom Stellard | |
2010-07-03 | r300/compiler: Enable hardware IF statements for r500 cards. | Tom Stellard | |
2010-07-03 | r300/compiler: In the peephole optimizer, ELSE should mark the end of a | Tom Stellard | |
block. | |||
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-23 | r300/compiler: allow 1024 instructions in r5xx vertex shaders | Marek Olšák | |
2010-06-23 | r300/compiler: allow 32 temporaries in vertex shaders | Marek Olšák | |
2010-06-23 | r300/compiler: emulate loops in vertex shaders | Marek Olšák | |
It is not perfect, but it is the best we got. | |||
2010-06-12 | r300/compiler: fix scons build | Joakim Sindholt | |
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. | |||
2010-06-05 | r300compiler: fix scons build | Joakim Sindholt | |
2010-06-05 | r300/compiler: implement SIN+COS+SCS for vertex shaders | Marek Olšák | |