r300g: Move ROPCNTL to the top of the emit order.
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Mon, 11 Jan 2010 01:51:40 +0000 (17:51 -0800)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Mon, 11 Jan 2010 07:15:05 +0000 (23:15 -0800)
According to the docs, this decreases stalls, and indeed we get a tiny
bit more glxgears from it.

src/gallium/drivers/r300/r300_emit.c

index 60e4a109d4462086950ad32e1ad6b7c624e30fb8..cfeb99a0adeeb7a418999ab216999c7ed1b33bc9 100644 (file)
@@ -42,6 +42,7 @@ void r300_emit_blend_state(struct r300_context* r300, void* state)
     struct r300_blend_state* blend = (struct r300_blend_state*)state;
     CS_LOCALS(r300);
     BEGIN_CS(8);
+    OUT_CS_REG(R300_RB3D_ROPCNTL, blend->rop);
     OUT_CS_REG_SEQ(R300_RB3D_CBLEND, 3);
     if (r300->framebuffer_state.nr_cbufs) {
         OUT_CS(blend->blend_control);
@@ -53,7 +54,6 @@ void r300_emit_blend_state(struct r300_context* r300, void* state)
         OUT_CS(0);
         /* XXX also disable fastfill here once it's supported */
     }
-    OUT_CS_REG(R300_RB3D_ROPCNTL, blend->rop);
     OUT_CS_REG(R300_RB3D_DITHER_CTL, blend->dither);
     END_CS;
 }