Module: Mesa Branch: mesa_7_5_branch Commit: ce723d8d8b011f2efaea6588c42b6d11ee2e7115 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce723d8d8b011f2efaea6588c42b6d11ee2e7115
Author: Brian Paul <[email protected]> Date: Thu Aug 20 10:34:45 2009 -0600 tgsi: check for SOA dependencies in SSE and PPC code generators Fall back to interpreter for now. This doesn't happen very often. --- src/gallium/auxiliary/tgsi/tgsi_ppc.c | 4 ++++ src/gallium/auxiliary/tgsi/tgsi_sse2.c | 4 ++++ 2 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/gallium/auxiliary/tgsi/tgsi_ppc.c b/src/gallium/auxiliary/tgsi/tgsi_ppc.c index 2f8b0c4..8466d9b 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_ppc.c +++ b/src/gallium/auxiliary/tgsi/tgsi_ppc.c @@ -1112,6 +1112,10 @@ emit_instruction(struct gen_context *gen, if (inst->Instruction.Saturate != TGSI_SAT_NONE) return 0; + /* need to use extra temps to fix SOA dependencies : */ + if (tgsi_check_soa_dependencies(inst)) + return FALSE; + switch (inst->Instruction.Opcode) { case TGSI_OPCODE_MOV: case TGSI_OPCODE_SWZ: diff --git a/src/gallium/auxiliary/tgsi/tgsi_sse2.c b/src/gallium/auxiliary/tgsi/tgsi_sse2.c index 571f98a..a13368c 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_sse2.c +++ b/src/gallium/auxiliary/tgsi/tgsi_sse2.c @@ -1506,6 +1506,10 @@ emit_instruction( if (inst->Instruction.Saturate != TGSI_SAT_NONE) return FALSE; + /* need to use extra temps to fix SOA dependencies : */ + if (tgsi_check_soa_dependencies(inst)) + return FALSE; + switch (inst->Instruction.Opcode) { case TGSI_OPCODE_ARL: FOR_EACH_DST0_ENABLED_CHANNEL( *inst, chan_index ) { _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
