diff options
author | Marek Olšák <[email protected]> | 2010-02-27 23:26:19 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2010-02-28 00:46:35 +0100 |
commit | fe6d3b9222ce184daab61ebb390a6af0b9889abf (patch) | |
tree | 3c0e8f446f937756bc435a5ba6d62bacfe520401 /src/gallium/drivers/r300/r300_state.c | |
parent | 841122d0e8025290ff2691e13ade1099d2c3351c (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.c | 5 |
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 f1f0de1a463..79cd715af17 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; } |