All pastes #1590714 Raw Edit

Untitled

public diff v1 · immutable
#1590714 ·published 2009-10-03 15:13 UTC
rendered paste body
diff --git a/src/mesa/drivers/dri/r600/r700_vertprog.c b/src/mesa/drivers/dri/r600/r700_vertprog.cindex e7a209b..ca2162f 100644--- a/src/mesa/drivers/dri/r600/r700_vertprog.c+++ b/src/mesa/drivers/dri/r600/r700_vertprog.c@@ -319,8 +319,10 @@ struct r700_vertex_program* r700TranslateVertexShader(GLcontext *ctx,                 _mesa_insert_mvp_code(ctx, vp->mesa_program);         } -	for(i=0; i<VERT_ATTRIB_MAX; i++)+	if( 1 == nVer ) 	{+	    for(i=0; i<VERT_ATTRIB_MAX; i++)+	    { 		unBit = 1 << i; 		if(vp->mesa_program->Base.InputsRead & unBit) /* ctx->Array.ArrayObj->xxxxxxx */ 		{@@ -328,7 +330,15 @@ struct r700_vertex_program* r700TranslateVertexShader(GLcontext *ctx, 			vp->aos_desc[i].stride = vb->AttribPtr[i]->size * sizeof(GL_FLOAT);/* when emit array, data is packed. vb->AttribPtr[i]->stride;*/ 			vp->aos_desc[i].type   = GL_FLOAT; 		}+	   } 	}+	else+	{+		for(i=0; i<context->nNumActiveAos; i++)+		{+			vp->aos_desc[i].size   = context->stream_desc[i].size;+		}+	}	 	 	if (context->radeon.radeonScreen->chip_family < CHIP_FAMILY_RV770) 	{@@ -388,17 +398,35 @@ void r700SelectVertexShader(GLcontext *ctx, GLint nVersion)          for (vp = vpc->progs; vp; vp = vp->next)     {+	if (vp->uiVersion != nVersion ) +		continue; 	match = GL_TRUE;	-	for(i=0; i<VERT_ATTRIB_MAX; i++)+	if ( 1 == nVersion )  	{+	    for(i=0; i<VERT_ATTRIB_MAX; i++)+	    { 		unBit = 1 << i; 		if(InputsRead & unBit) 		{ 			if (vp->aos_desc[i].size != vb->AttribPtr[i]->size)+			{ 				match = GL_FALSE; 				break;+			} 		}+	    } 	}+	else+	{+	    for(i=0; i<context->nNumActiveAos; i++)+	    {+		if (vp->aos_desc[i].size != context->stream_desc[i].size)+		{+			match = GL_FALSE;+			break;+		}+	    }+	}	 	if (match)  	{ 		context->selected_vp = vp;