diff options
author | Corbin Simpson <[email protected]> | 2010-01-26 22:08:11 -0800 |
---|---|---|
committer | Corbin Simpson <[email protected]> | 2010-01-26 22:08:11 -0800 |
commit | fc20efe8e511bb9ec15c3d70e28b348ddaa4ad37 (patch) | |
tree | 247edb6747733071676f4dc81ba278ae124740c4 /src/gallium/drivers/r300/r300_emit.c | |
parent | 60aa7f1f8042a9291339a3b337a2f1adacf12841 (diff) |
r300g: Turn the RS block into an atom.
At least one extraneous dirty was eliminated, as well as the chance for
avoiding dirty on shader change.
Diffstat (limited to 'src/gallium/drivers/r300/r300_emit.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_emit.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index 8081f1d9569..8bc9da9361f 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -627,10 +627,10 @@ void r300_emit_rs_state(struct r300_context* r300, void* state) END_CS; } -void r300_emit_rs_block_state(struct r300_context* r300, - struct r300_rs_block* rs) +void r300_emit_rs_block_state(struct r300_context* r300, void* state) { - int i; + struct r300_rs_block* rs = (struct r300_rs_block*)state; + unsigned i; struct r300_screen* r300screen = r300_screen(r300->context.screen); CS_LOCALS(r300); @@ -1142,11 +1142,6 @@ void r300_emit_dirty_state(struct r300_context* r300) r300->dirty_state &= ~R300_NEW_FRAMEBUFFERS; } - if (r300->dirty_state & R300_NEW_RS_BLOCK) { - r300_emit_rs_block_state(r300, r300->rs_block); - r300->dirty_state &= ~R300_NEW_RS_BLOCK; - } - /* Samplers and textures are tracked separately but emitted together. */ if (r300->dirty_state & (R300_ANY_NEW_SAMPLERS | R300_ANY_NEW_TEXTURES)) { |