Restore vp input mapping, fix vtx stream missing problem.
authorRichard Li <richardradeon@gmail.com>
Thu, 16 Jul 2009 14:28:58 +0000 (10:28 -0400)
committerRichard Li <richardradeon@gmail.com>
Thu, 16 Jul 2009 14:28:58 +0000 (10:28 -0400)
src/mesa/drivers/dri/r600/r700_chip.c
src/mesa/drivers/dri/r600/r700_vertprog.c

index 535f55525eca0bbce82323b4d026d91f190133cd..b944f5466eea6f42fecd25d21e1ce32f98bcd4b7 100644 (file)
@@ -386,7 +386,7 @@ int r700SetupStreams(GLcontext * ctx)
 
                        /* currently aos are packed */
                        r700SetupVTXConstants(ctx,
-                                             j,
+                                             i,
                                              (void*)(&context->radeon.tcl.aos[j]),
                                              (unsigned int)context->radeon.tcl.aos[j].components,
                                              (unsigned int)context->radeon.tcl.aos[j].stride * 4,
index a3720fb88dc9427d3cdb5523c802f690577170d5..cbfeaf071b434c65169ac20a8d295c13ee1bf3d0 100644 (file)
@@ -115,7 +115,7 @@ unsigned int Map_Vertex_Input(r700_AssemblerBase       *pAsm,
                                          struct gl_vertex_program *mesa_vp,
                                          unsigned int unStart)
 {
-       int i, j = 0;
+       int i;
        unsigned int unBit;
        unsigned int unTotal = unStart;
        for(i=0; i<VERT_ATTRIB_MAX; i++)
@@ -123,8 +123,7 @@ unsigned int Map_Vertex_Input(r700_AssemblerBase       *pAsm,
                unBit = 1 << i;
                if(mesa_vp->Base.InputsRead & unBit)
                {
-                       pAsm->ucVP_AttributeMap[j] = unTotal++;
-                       j++;
+                       pAsm->ucVP_AttributeMap[i] = unTotal++;
                }
        }
        return (unTotal - unStart);
@@ -134,7 +133,7 @@ GLboolean Process_Vertex_Program_Vfetch_Instructions(
                                                struct r700_vertex_program *vp,
                                                struct gl_vertex_program   *mesa_vp)
 {
-       int i, j = 0;
+       int i;
     unsigned int unBit;
        VTX_FETCH_METHOD vtxFetchMethod;
        vtxFetchMethod.bEnableMini          = GL_FALSE;
@@ -146,12 +145,11 @@ GLboolean Process_Vertex_Program_Vfetch_Instructions(
                if(mesa_vp->Base.InputsRead & unBit)
                {
                        assemble_vfetch_instruction(&vp->r700AsmCode,
-                                                   j,
-                                                   vp->r700AsmCode.ucVP_AttributeMap[j],
-                                                   vp->aos_desc[j].size,
-                                                   vp->aos_desc[j].type,
+                                                   i,
+                                                   vp->r700AsmCode.ucVP_AttributeMap[i],
+                                                   vp->aos_desc[i].size,
+                                                   vp->aos_desc[i].type,
                                                    &vtxFetchMethod);
-                       j++;
                }
        }
        
@@ -307,16 +305,15 @@ void r700SelectVertexShader(GLcontext *ctx)
        struct vertex_buffer *vb = &tnl->vb;
 
     unsigned int unBit;
-    unsigned int i, j = 0;
+    unsigned int i;
        for(i=0; i<VERT_ATTRIB_MAX; i++)
        {
                unBit = 1 << i;
                if(vpc->mesa_program.Base.InputsRead & unBit) /* ctx->Array.ArrayObj->xxxxxxx */
                {
-                       vpc->aos_desc[j].size   = vb->AttribPtr[i]->size;
-                       vpc->aos_desc[j].stride = vb->AttribPtr[i]->size * sizeof(GL_FLOAT);/* when emit array, data is packed. vb->AttribPtr[i]->stride;*/
-                       vpc->aos_desc[j].type   = GL_FLOAT;
-                       j++;
+                       vpc->aos_desc[i].size   = vb->AttribPtr[i]->size;
+                       vpc->aos_desc[i].stride = vb->AttribPtr[i]->size * sizeof(GL_FLOAT);/* when emit array, data is packed. vb->AttribPtr[i]->stride;*/
+                       vpc->aos_desc[i].type   = GL_FLOAT;
                }
        }