Mesa (master): tgsi: check for SOA dependencies in SSE and PPC code generators

Brian Paul brianp at kemper.freedesktop.org
Thu Aug 20 16:52:55 UTC 2009


Module: Mesa
Branch: master
Commit: 1645adc55155747708f1f5b1c629ac03cc5126df
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1645adc55155747708f1f5b1c629ac03cc5126df

Author: Brian Paul <brianp at vmware.com>
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 3c4dd6e..4b1c7d4 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_ppc.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_ppc.c
@@ -1113,6 +1113,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 348357d..46f2387 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_sse2.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_sse2.c
@@ -1751,6 +1751,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 ) {




More information about the mesa-commit mailing list