softpipe: fix constant buffer tracking after rework
authorKeith Whitwell <keithw@vmware.com>
Thu, 4 Mar 2010 16:50:22 +0000 (16:50 +0000)
committerKeith Whitwell <keithw@vmware.com>
Thu, 4 Mar 2010 16:50:22 +0000 (16:50 +0000)
src/gallium/drivers/softpipe/sp_state_fs.c

index cd0e905bc990c6c2fb23d8d046847622d06db0eb..2b089c2831642108d13fd71528d4c5abaa12703b 100644 (file)
@@ -176,19 +176,17 @@ softpipe_set_constant_buffer(struct pipe_context *pipe,
    assert(shader < PIPE_SHADER_TYPES);
    assert(index == 0);
 
-   if(softpipe->constants[shader][index] == constants)
-      return;
-
    draw_flush(softpipe->draw);
 
    /* note: reference counting */
    pipe_buffer_reference(&softpipe->constants[shader][index], constants);
 
    if(shader == PIPE_SHADER_VERTEX) {
-      draw_set_mapped_constant_buffer(softpipe->draw, PIPE_SHADER_VERTEX, 0,
+      draw_set_mapped_constant_buffer(softpipe->draw, PIPE_SHADER_VERTEX, index,
                                       data, size);
    }
 
+   softpipe->mapped_constants[shader][index] = data;
    softpipe->dirty |= SP_NEW_CONSTANTS;
 }