summaryrefslogtreecommitdiff
path: root/src/gallium
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2010-03-04 16:50:22 +0000
committerKeith Whitwell <keithw@vmware.com>2010-03-04 16:50:22 +0000
commit3b6a991728ccb174f19de8b9752241cd4f21398e (patch)
tree20ebaa0310d321f2cfca7fe65a67a363a4072335 /src/gallium
parentc549593931ef08bb48e601189fa97c86b5e780b2 (diff)
softpipe: fix constant buffer tracking after rework
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/softpipe/sp_state_fs.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/gallium/drivers/softpipe/sp_state_fs.c b/src/gallium/drivers/softpipe/sp_state_fs.c
index cd0e905bc9..2b089c2831 100644
--- a/src/gallium/drivers/softpipe/sp_state_fs.c
+++ b/src/gallium/drivers/softpipe/sp_state_fs.c
@@ -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;
}