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

Author: Richard Li <[email protected]>
Date:   Tue Nov 24 16:00:25 2009 -0500

r600 : reset stack flag with one channel only.

---

 src/mesa/drivers/dri/r600/r700_assembler.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/r600/r700_assembler.c 
b/src/mesa/drivers/dri/r600/r700_assembler.c
index 0c16594..ba97d3e 100644
--- a/src/mesa/drivers/dri/r600/r700_assembler.c
+++ b/src/mesa/drivers/dri/r600/r700_assembler.c
@@ -5663,6 +5663,8 @@ GLboolean setRetInLoopFlag(r700_AssemblerBase *pAsm, 
GLuint flagValue)
     pAsm->D2.dst2.literal      = 1;
     pAsm->D2.dst2.SaturateMode = SATURATE_OFF;
     pAsm->D.dst.predicated     = 0;
+    /* in reloc where dislink flag init inst, only one slot alu inst is 
handled. */
+    pAsm->D.dst.math           = 1; /* TODO : not math really, but one channel 
op, more generic alu assembler needed */
 #if 0
     pAsm->S[0].src.rtype = SRC_REC_LITERAL;
     //pAsm->S[0].src.reg   = 0;
@@ -6457,6 +6459,7 @@ GLboolean AssembleInstr(GLuint uiFirstInst,
 GLboolean InitShaderProgram(r700_AssemblerBase * pAsm)
 {
     setRetInLoopFlag(pAsm, SQ_SEL_0);
+    pAsm->alu_x_opcode = SQ_CF_INST_ALU;
     return GL_TRUE;
 }
 
@@ -6482,7 +6485,7 @@ GLboolean RelocProgram(r700_AssemblerBase * pAsm)
             if(SIT_CF_ALU == pInst->m_ShaderInstType)
             {
                 pCF_ALU = (R700ControlFlowALUClause *)pInst;
-                if(1 == pCF_ALU->m_Word1.f.count)
+                if(0 == pCF_ALU->m_Word1.f.count)
                 {
                     pCF_ALU->m_Word1.f.cf_inst = SQ_CF_INST_NOP;
                 }

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to