r600g: Only compare active vertex elements
authorMathias Fröhlich <Mathias.Froehlich@gmx.net>
Tue, 23 Nov 2010 07:39:30 +0000 (08:39 +0100)
committerTilman Sauerbeck <tilman@code-monkey.de>
Tue, 23 Nov 2010 07:39:43 +0000 (08:39 +0100)
Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
src/gallium/drivers/r600/r600_shader.c

index 3e42309..37884d0 100644 (file)
@@ -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;