summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/compiler
AgeCommit message (Collapse)Author
2010-10-18r300/compiler: Fix incorrect assumptionTom Stellard
It is possible for a single pair instruction arg to select from both an RGB and an Alpha source.
2010-10-18r300/compiler: Create a helper function for merging presubtract sourcesTom Stellard
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning on linux-x86 build. r3xx_vertprog.c: In function ‘ei_if’: r3xx_vertprog.c:396: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes these GCC warnings on linux-x86 build. r500_fragprog_emit.c: In function ‘emit_paired’: r500_fragprog_emit.c:237: warning: ISO C90 forbids mixed declarations and code r500_fragprog_emit.c: In function ‘emit_tex’: r500_fragprog_emit.c:367: warning: ISO C90 forbids mixed declarations and code r500_fragprog_emit.c: In function ‘emit_flowcontrol’: r500_fragprog_emit.c:415: warning: ISO C90 forbids mixed declarations and code r500_fragprog_emit.c: In function ‘r500BuildFragmentProgramHwCode’: r500_fragprog_emit.c:633: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes these GCC warnings on linux-x86 build. r500_fragprog.c: In function ‘r500_transform_IF’: r500_fragprog.c:45: warning: ISO C90 forbids mixed declarations and code r500_fragprog.c: In function ‘r500FragmentProgramDump’: r500_fragprog.c:256: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes these GCC warnings on linux-x86 build. r300_fragprog_emit.c: In function ‘emit_alu’: r300_fragprog_emit.c:143: warning: ISO C90 forbids mixed declarations and code r300_fragprog_emit.c:156: warning: ISO C90 forbids mixed declarations and code r300_fragprog_emit.c: In function ‘finish_node’: r300_fragprog_emit.c:271: warning: ISO C90 forbids mixed declarations and code r300_fragprog_emit.c: In function ‘emit_tex’: r300_fragprog_emit.c:344: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Remove declaration before code.Vinson Lee
Fixes these GCC warnings on linux-x86 build. r300_fragprog_swizzle.c: In function ‘r300_swizzle_is_native’: r300_fragprog_swizzle.c:120: warning: ISO C90 forbids mixed declarations and code r300_fragprog_swizzle.c: In function ‘r300_swizzle_split’: r300_fragprog_swizzle.c:159: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning on linux-x86 build. radeon_rename_regs.c: In function ‘rc_rename_regs’: radeon_rename_regs.c:112: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning on linux-x86 build. radeon_remove_constants.c: In function ‘rc_remove_unused_constants’: radeon_remove_constants.c:100: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes these GCC warning on linux-x86 build. radeon_optimize.c: In function ‘constant_folding’: radeon_optimize.c:419: warning: ISO C90 forbids mixed declarations and code radeon_optimize.c:425: warning: ISO C90 forbids mixed declarations and code radeon_optimize.c:432: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes these GCC warnings on linux-x86 build. radeon_dataflow_deadcode.c: In function ‘push_branch’: radeon_dataflow_deadcode.c:112: warning: ISO C90 forbids mixed declarations and code radeon_dataflow_deadcode.c: In function ‘update_instruction’: radeon_dataflow_deadcode.c:183: warning: ISO C90 forbids mixed declarations and code radeon_dataflow_deadcode.c: In function ‘rc_dataflow_deadcode’: radeon_dataflow_deadcode.c:352: warning: ISO C90 forbids mixed declarations and code radeon_dataflow_deadcode.c:379: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning on linux-x86 build. radeon_pair_regalloc.c: In function ‘rc_pair_regalloc_inputs_only’: radeon_pair_regalloc.c:330: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes these GCC warnings on linux-x86 build. radeon_pair_schedule.c: In function ‘emit_all_tex’: radeon_pair_schedule.c:244: warning: ISO C90 forbids mixed declarations and code radeon_pair_schedule.c: In function ‘destructive_merge_instructions’: radeon_pair_schedule.c:291: warning: ISO C90 forbids mixed declarations and code radeon_pair_schedule.c:438: warning: ISO C90 forbids mixed declarations and code radeon_pair_schedule.c: In function ‘scan_read’: radeon_pair_schedule.c:619: warning: ISO C90 forbids mixed declarations and code radeon_pair_schedule.c: In function ‘scan_write’: radeon_pair_schedule.c:645: warning: ISO C90 forbids mixed declarations and code radeon_pair_schedule.c: In function ‘schedule_block’: radeon_pair_schedule.c:673: warning: ISO C90 forbids mixed declarations and code radeon_pair_schedule.c: In function ‘rc_pair_schedule’: radeon_pair_schedule.c:730: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes these GCC warnings on linux-x86 build. radeon_pair_translate.c: In function ‘set_pair_instruction’: radeon_pair_translate.c:153: warning: ISO C90 forbids mixed declarations and code radeon_pair_translate.c:170: warning: ISO C90 forbids mixed declarations and code radeon_pair_translate.c: In function ‘rc_pair_translate’: radeon_pair_translate.c:336: warning: ISO C90 forbids mixed declarations and code radeon_pair_translate.c:341: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes these GCC warnings on linux-x86 build. radeon_program_alu.c: In function ‘r300_transform_trig_simple’: radeon_program_alu.c:882: warning: ISO C90 forbids mixed declarations and code radeon_program_alu.c:932: warning: ISO C90 forbids mixed declarations and code radeon_program_alu.c: In function ‘radeonTransformTrigScale’: radeon_program_alu.c:996: warning: ISO C90 forbids mixed declarations and code radeon_program_alu.c: In function ‘r300_transform_trig_scale_vertex’: radeon_program_alu.c:1033: warning: ISO C90 forbids mixed declarations and code
2010-09-29r300/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-29r300/compiler: Move declaration before code.Vinson Lee
Fixes these GCC warnings with linux-x86 build. radeon_emulate_branches.c: In function ‘handle_if’: radeon_emulate_branches.c:65: warning: ISO C90 forbids mixed declarations and code radeon_emulate_branches.c:71: warning: ISO C90 forbids mixed declarations and code radeon_emulate_branches.c: In function ‘handle_else’: radeon_emulate_branches.c:94: warning: ISO C90 forbids mixed declarations and code radeon_emulate_branches.c: In function ‘handle_endif’: radeon_emulate_branches.c:201: warning: ISO C90 forbids mixed declarations and code radeon_emulate_branches.c: In function ‘fix_output_writes’: radeon_emulate_branches.c:267: warning: ISO C90 forbids mixed declarations and code radeon_emulate_branches.c:284: warning: ISO C90 forbids mixed declarations and code radeon_emulate_branches.c: In function ‘rc_emulate_branches’: radeon_emulate_branches.c:307: warning: ISO C90 forbids mixed declarations and code
2010-09-28r300/compiler: Don't merge instructions that write output regs and ALU resultTom Stellard
https://bugs.freedesktop.org/show_bug.cgi?id=30415 NOTE: This is a candidate for the 7.9 branch.
2010-09-28r300/compiler: Don't use rc_error() unless the error is unrecoverableTom Stellard
https://bugs.freedesktop.org/show_bug.cgi?id=30416 NOTE: This is a candidate for the 7.9 branch.
2010-09-28r300/compiler: Fix segfault in error pathTom Stellard
https://bugs.freedesktop.org/show_bug.cgi?id=30415 NOTE: This is a candidate for the 7.9 branch.
2010-09-27r300/compiler: Use rc_for_all_reads_src() in "dead constants" passTom Stellard
2010-09-27r300/compiler: radeon_remove_constants.c: fix indentationTom Stellard
2010-09-27r300/compiler: Print immediate values after "dead constants" passTom Stellard
2010-09-27r300/compiler: Add more helper functions for iterating through sourcesTom 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-28r300g: add support for 3D NPOT textures without mipmappingMarek 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-28r300/compiler: fix shadow sampling with swizzled coordsMarek 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-28r300/compiler: do not use copy propagation if SaturateMode is usedMarek Olšák
NOTE: This is a candidate for the 7.9 branch.
2010-09-28r300/compiler: fix projective mapping of 2D NPOT texturesMarek Olšák
NOTE: This is a candidate for the 7.9 branch.
2010-09-28r300g: code cleanupsMarek 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-25r300/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-20r300/compiler: Refactor the pair instruction data structuresTom 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-13r300/compiler: fix warningsMarek Olšák
2010-09-10r300/compiler: Reorganize presub_helper()Tom Stellard
2010-09-10r300/compiler: Don't use presubtract in TEX instructionsTom Stellard
2010-09-10r300/compiler: Print the presub subtract operation in the correct orderTom Stellard
2010-09-10r300/compiler: Fix dataflow bug in presub_helper()Tom Stellard
2010-09-10r300/compiler: Replace asserts with error messagesTom Stellard
2010-09-10r300/compiler: Fix copy propigation for some presub instructionsTom Stellard
2010-09-10r300/compiler: Add peephole optimization for the 'sub' presubtract operationTom Stellard
2010-09-10r300/compiler: Add peephole optimization for the 'add' presubtract operationTom Stellard
2010-09-10r300/compiler: Clean up rc_pair_alloc_source()Tom Stellard
2010-09-10r300/compiler: Enable presubtract sourcesTom 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-04r300/compiler: Remove stray break statementTom Stellard
This fixes glsl-fs-loop-nested.
2010-09-05r300/compiler: fix the instruction limit in vertex shadersMarek Olšák
Broken with commit d774b0c710bb7d833d17bd12f5151a0176baad96. Reported by Chris Rankin.
2010-09-04r300/compiler: indent printed instructions according to the branch depthMarek Olšák
2010-09-04r300/compiler: use limits from the compiler input instead of inline constantsMarek Olšák
2010-09-04r300/compiler: improve register allocation with indexable temporaries for VSMarek 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-04r300/compiler: fix handling of indexed temporaries in peepholeMarek Olšák
2010-09-04r300/compiler: disable deadcode elimination for indexed dst operandsMarek Olšák
2010-09-04r300/compiler: allocate at least FS inputs if register allocation is disabledMarek Olšák