Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-09-27 | r300/compiler: Use rc_for_all_reads_src() in "dead constants" pass | Tom Stellard | |
2010-09-27 | r300/compiler: radeon_remove_constants.c: fix indentation | Tom Stellard | |
2010-09-27 | r300/compiler: Print immediate values after "dead constants" pass | Tom Stellard | |
2010-09-27 | r300/compiler: Add more helper functions for iterating through sources | Tom Stellard | |
rc_for_all_reads_src() and rc_pair_for_all_reads_arg() pass references to instruction sources to the callback so they can be modified directly. | |||
2010-09-28 | r300g: add support for 3D NPOT textures without mipmapping | Marek Olšák | |
The driver actually creates a 3D texture aligned to POT and does all the magic with texture coordinates in the fragment shader. It first emulates REPEAT and MIRRORED wrap modes in the fragment shader to get the coordinates into the range [0, 1]. (already done for 2D NPOT) Then it scales them to get the coordinates of the NPOT subtexture. NPOT textures are now less of a lie and we can at least display something meaningful even for the 3D ones. Supported wrap modes: - REPEAT - MIRRORED_REPEAT - CLAMP_TO_EDGE (NEAREST filtering only) - MIRROR_CLAMP_TO_EDGE (NEAREST filtering only) - The behavior of other CLAMP modes is undefined on borders, but they usually give results very close to CLAMP_TO_EDGE with mirroring working perfectly. This fixes: - piglit/fbo-3d - piglit/tex3d-npot | |||
2010-09-28 | r300/compiler: fix shadow sampling with swizzled coords | Marek Olšák | |
Taking the W component from coords directly ignores swizzling. Instead, take the component which is mapped to W in the TEX instruction parameter. The same for Z. NOTE: This is a candidate for the 7.9 branch. | |||
2010-09-28 | r300/compiler: do not use copy propagation if SaturateMode is used | Marek Olšák | |
NOTE: This is a candidate for the 7.9 branch. | |||
2010-09-28 | r300/compiler: fix projective mapping of 2D NPOT textures | Marek Olšák | |
NOTE: This is a candidate for the 7.9 branch. | |||
2010-09-28 | r300g: code cleanups | Marek Olšák | |
Some random stuff I had here. 1) Fixed some misleading comments. 2) Removed fake_npot, since it's redundant. 3) lower_texture_rect -> scale_texcoords 4) Reordered and reindented some TEX transform code. | |||
2010-09-27 | mesa: Force GL_SGIS_generate_mipmap to always be enabled | Ian Romanick | |
As per discussions at XDS. | |||
2010-09-25 | r300/compiler: Fix two mistakes in the presubtract optimization pass. | Tom Stellard | |
1. We can't turn an instruction into a presubtract operation if it writes to one of the registers it reads from. 2. If we turn an instruction into a presubtract operation, we can't remove that intruction unless all readers can use the presubtract operation. This fixes fdo bug 30337. This is a candidate for the 7.9 branch. | |||
2010-09-20 | r300/compiler: Refactor the pair instruction data structures | Tom Stellard | |
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. | |||
2010-09-13 | r300/compiler: fix warnings | Marek Olšák | |
2010-09-10 | r300/compiler: Reorganize presub_helper() | Tom Stellard | |
2010-09-10 | r300/compiler: Don't use presubtract in TEX instructions | Tom Stellard | |
2010-09-10 | r300/compiler: Print the presub subtract operation in the correct order | Tom Stellard | |
2010-09-10 | r300/compiler: Fix dataflow bug in presub_helper() | Tom Stellard | |
2010-09-10 | r300/compiler: Replace asserts with error messages | Tom Stellard | |
2010-09-10 | r300/compiler: Fix copy propigation for some presub instructions | Tom Stellard | |
2010-09-10 | r300/compiler: Add peephole optimization for the 'sub' presubtract operation | Tom Stellard | |
2010-09-10 | r300/compiler: Add peephole optimization for the 'add' presubtract operation | Tom Stellard | |
2010-09-10 | r300/compiler: Clean up rc_pair_alloc_source() | Tom Stellard | |
2010-09-10 | r300/compiler: Enable presubtract sources | Tom Stellard | |
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. | |||
2010-09-05 | r300g,r300c: memset the compiler struct to zeros | Marek Olšák | |
This should fix bogus reports "Too many temporaries." and maybe some others. | |||
2010-09-04 | r300/compiler: Remove stray break statement | Tom Stellard | |
This fixes glsl-fs-loop-nested. | |||
2010-09-05 | r300/compiler: fix the instruction limit in vertex shaders | Marek Olšák | |
Broken with commit d774b0c710bb7d833d17bd12f5151a0176baad96. Reported by Chris Rankin. | |||
2010-09-04 | r300/compiler: indent printed instructions according to the branch depth | Marek Olšák | |
2010-09-04 | r300/compiler: use limits from the compiler input instead of inline constants | Marek Olšák | |
2010-09-04 | r300/compiler: improve register allocation with indexable temporaries for VS | Marek Olšák | |
Register allocation can now reallocate temporaries right after the last indexed source operand, instead of being disabled for the whole shader. | |||
2010-09-04 | r300/compiler: fix handling of indexed temporaries in peephole | Marek Olšák | |
2010-09-04 | r300/compiler: disable deadcode elimination for indexed dst operands | Marek Olšák | |
2010-09-04 | r300/compiler: allocate at least FS inputs if register allocation is disabled | Marek Olšák | |
2010-09-04 | r300g: add a new debug option which disables compiler optimizations | Marek Olšák | |
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. | |||
2010-09-04 | r300/compiler: compute the final number of temporaries during translation | Marek Olšák | |
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. | |||
2010-09-04 | r300/compiler: make optimizations not use 0.5 swizzles in vertex shaders | Marek Olšák | |
2010-09-04 | r300/compiler: use peephole and constant folding for vertex shaders too | Marek Olšák | |
2010-09-04 | r300/compiler: remove unused enum OPCODE_REPL_ALPHA | Marek Olšák | |
We use RC_OPCODE_REPL_ALPHA instead. | |||
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: add new compiler parameter max_constants | Marek Olšák | |
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: remove a redundant parameter in rc_pair_regalloc | Marek Olšák | |
2010-09-04 | r300/compiler: remove a redundant parameter in rc_dataflow_deadcode | Marek Olšák | |
&c->Base == c. | |||
2010-09-04 | r300/compiler: use null-terminated array of transformation functions | Marek Olšák | |
I need to reduce the number of parameters of each compiler pass function. This is part of a larger cleanup. | |||
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-25 | r300: Remove unnecessary header. | Vinson Lee | |
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. |