Hi,

Attached is a patch to r600g which limits the number of compared vertex 
elements to the amount that is actually active instead of comparing all 
possible 32 vertex elements.
The patch moves the r600_shader_update function down in my usual profile runs.

Please review/apply.

Thanks

Mathias
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 3e42309..37884d0 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -274,7 +274,8 @@ static int r600_shader_update(struct pipe_context *ctx, struct r600_pipe_shader
 		return 0;
 	/* doing a full memcmp fell over the refcount */
 	if ((rshader->vertex_elements.count == rctx->vertex_elements->count) &&
-	    (!memcmp(&rshader->vertex_elements.elements, &rctx->vertex_elements->elements, 32 * sizeof(struct pipe_vertex_element)))) {
+	    (!memcmp(&rshader->vertex_elements.elements, &rctx->vertex_elements->elements,
+                     rctx->vertex_elements->count * sizeof(struct pipe_vertex_element)))) {
 		return 0;
 	}
 	rshader->vertex_elements = *rctx->vertex_elements;
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to