radeon/r300: no need to flush the cmdbuf when changing scissors state in KMM mode
authorMaciej Cencora <m.cencora@gmail.com>
Wed, 11 Nov 2009 12:06:19 +0000 (13:06 +0100)
committerMaciej Cencora <m.cencora@gmail.com>
Sat, 14 Nov 2009 13:42:48 +0000 (14:42 +0100)
src/mesa/drivers/dri/r300/r300_state.c
src/mesa/drivers/dri/radeon/radeon_common.c

index ac20c08e201a4fcd8fe702c0433ff98363336a89..1fd32d497b4a5d2a89743cdb729647b001e47e3b 100644 (file)
@@ -1741,7 +1741,8 @@ static void r300Enable(GLcontext * ctx, GLenum cap, GLboolean state)
                r300SetPolygonOffsetState(ctx, state);
                break;
        case GL_SCISSOR_TEST:
-               radeon_firevertices(&rmesa->radeon);
+               if (!rmesa->radeon.radeonScreen->kernel_mm)
+                       radeon_firevertices(&rmesa->radeon);
                rmesa->radeon.state.scissor.enabled = state;
                radeonUpdateScissor( ctx );
                break;
index 420dce4ac9fff52b8c3296e95b92af14f5fd007f..cb344f1d21f09a2f3e6098e5688f5fe30d3d1a90 100644 (file)
@@ -257,7 +257,9 @@ void radeonScissor(GLcontext* ctx, GLint x, GLint y, GLsizei w, GLsizei h)
        radeonContextPtr radeon = RADEON_CONTEXT(ctx);
        if (ctx->Scissor.Enabled) {
                /* We don't pipeline cliprect changes */
-               radeon_firevertices(radeon);
+               if (!radeon->radeonScreen->kernel_mm) {
+                       radeon_firevertices(radeon);
+               }
                radeonUpdateScissor(ctx);
        }
 }