Mesa (r6xx-rewrite): Restore vp input mapping, fix vtx stream missing problem.

Richard Li richardradeon at kemper.freedesktop.org
Thu Jul 16 14:32:25 UTC 2009


Module: Mesa
Branch: r6xx-rewrite
Commit: 00a216fd1e4ea284df9df71128b0e496816cab4d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=00a216fd1e4ea284df9df71128b0e496816cab4d

Author: Richard Li <richardradeon at gmail.com>
Date:   Thu Jul 16 10:28:58 2009 -0400

Restore vp input mapping, fix vtx stream missing problem.

---

 src/mesa/drivers/dri/r600/r700_chip.c     |    2 +-
 src/mesa/drivers/dri/r600/r700_vertprog.c |   25 +++++++++++--------------
 2 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/src/mesa/drivers/dri/r600/r700_chip.c b/src/mesa/drivers/dri/r600/r700_chip.c
index 535f555..b944f54 100644
--- a/src/mesa/drivers/dri/r600/r700_chip.c
+++ b/src/mesa/drivers/dri/r600/r700_chip.c
@@ -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,
diff --git a/src/mesa/drivers/dri/r600/r700_vertprog.c b/src/mesa/drivers/dri/r600/r700_vertprog.c
index a3720fb..cbfeaf0 100644
--- a/src/mesa/drivers/dri/r600/r700_vertprog.c
+++ b/src/mesa/drivers/dri/r600/r700_vertprog.c
@@ -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;
 		}
 	}
 




More information about the mesa-commit mailing list