diff options
author | Richard Li <richardradeon@gmail.com> | 2009-07-16 10:28:58 -0400 |
---|---|---|
committer | Richard Li <richardradeon@gmail.com> | 2009-07-16 10:28:58 -0400 |
commit | 00a216fd1e4ea284df9df71128b0e496816cab4d (patch) | |
tree | f5d2adb8f7b8eab9b084909585b9c956494d05f5 | |
parent | 11606e873d38a320195ab4e23181579f766ae45c (diff) |
Restore vp input mapping, fix vtx stream missing problem.
-rw-r--r-- | src/mesa/drivers/dri/r600/r700_chip.c | 2 | ||||
-rw-r--r-- | 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 535f55525e..b944f5466e 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 a3720fb88d..cbfeaf071b 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; } } |