summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_state.c
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2010-02-27 23:26:19 +0100
committerMarek Olšák <maraeo@gmail.com>2010-02-28 00:46:35 +0100
commitfe6d3b9222ce184daab61ebb390a6af0b9889abf (patch)
tree3c0e8f446f937756bc435a5ba6d62bacfe520401 /src/gallium/drivers/r300/r300_state.c
parent841122d0e8025290ff2691e13ade1099d2c3351c (diff)
r300g: atomize PVS flush
The first non-state atom. It's better and cleaner to have it.
Diffstat (limited to 'src/gallium/drivers/r300/r300_state.c')
-rw-r--r--src/gallium/drivers/r300/r300_state.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
index f1f0de1a46..79cd715af1 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -1109,6 +1109,7 @@ static void r300_bind_vs_state(struct pipe_context* pipe, void* shader)
r300->vs_state.dirty = TRUE;
r300->vertex_format_state.dirty = TRUE;
+ r300->pvs_flush.dirty = TRUE;
if (r300->fs) {
r300_vertex_shader_setup_wpos(r300);
@@ -1186,8 +1187,10 @@ static void r300_set_constant_buffer(struct pipe_context *pipe,
r300->shader_constants[shader].count = buf->size / (4 * sizeof(float));
pipe_buffer_unmap(pipe->screen, buf);
- if (shader == PIPE_SHADER_VERTEX)
+ if (shader == PIPE_SHADER_VERTEX) {
r300->dirty_state |= R300_NEW_VERTEX_SHADER_CONSTANTS;
+ r300->pvs_flush.dirty = TRUE;
+ }
else if (shader == PIPE_SHADER_FRAGMENT)
r300->dirty_state |= R300_NEW_FRAGMENT_SHADER_CONSTANTS;
}