radeon/r200: fix the state emission before kernel clear
authorDave Airlie <airlied@redhat.com>
Wed, 24 Feb 2010 09:13:07 +0000 (19:13 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 24 Feb 2010 09:13:07 +0000 (19:13 +1000)
this moves the emission outside the lock and adds r200 support.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/mesa/drivers/dri/r200/r200_ioctl.c
src/mesa/drivers/dri/radeon/radeon_ioctl.c

index a1b505707ea2c98881cd6d3ac4843831017c5e92..b72f69b7f4585166101716ed322f2edba7abd6b0 100644 (file)
@@ -61,6 +61,8 @@ static void r200KernelClear(GLcontext *ctx, GLuint flags)
    GLint cx, cy, cw, ch, ret;
    GLuint i;
 
+   radeonEmitState(&rmesa->radeon);
+
    LOCK_HARDWARE( &rmesa->radeon );
 
    /* Throttle the number of clear ioctls we do.
index d429f15fa5bd3874f9b2470e1584b59c62b1cf57..5ac526c6debaae4b131b738949b7a34266e5211a 100644 (file)
@@ -442,6 +442,8 @@ static void radeonKernelClear(GLcontext *ctx, GLuint flags)
    GLint ret, i;
    GLint cx, cy, cw, ch;
 
+   radeonEmitState(&rmesa->radeon);
+
    LOCK_HARDWARE( &rmesa->radeon );
 
    /* compute region after locking: */
@@ -481,7 +483,6 @@ static void radeonKernelClear(GLcontext *ctx, GLuint flags)
       }
    }
 
-   radeonEmitState(&rmesa->radeon);
    /* Send current state to the hardware */
    rcommonFlushCmdBufLocked( &rmesa->radeon, __FUNCTION__ );