diff options
Diffstat (limited to 'src/gallium/auxiliary')
| -rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_ppc.c | 4 | ||||
| -rw-r--r-- | 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 2f8b0c4df0..8466d9bc22 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 571f98ae35..a13368c80c 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 ) { | 
