make sure ctx->Driver.Flush is valid before calling it
authorAlex Deucher <alexdeucher@gmail.com>
Wed, 15 Jul 2009 15:31:24 +0000 (11:31 -0400)
committerAlex Deucher <alexdeucher@gmail.com>
Wed, 15 Jul 2009 15:31:24 +0000 (11:31 -0400)
src/mesa/drivers/dri/radeon/radeon_common.c
src/mesa/drivers/dri/radeon/radeon_fbo.c

index 1848b7113e11fa012ed5ec2e994aa3609344a3fc..59ae7814aa3733beb63991bf2d83af591f0a54b8 100644 (file)
@@ -999,7 +999,8 @@ again:
        if (ret == RADEON_CS_SPACE_OP_TO_BIG)
                return GL_FALSE;
        if (ret == RADEON_CS_SPACE_FLUSH) {
-               ctx->Driver.Flush(ctx); /* +r6/r7 */
+               if (ctx->Driver.Flush)
+                       ctx->Driver.Flush(ctx); /* +r6/r7 */
                if (flushed)
                        return GL_FALSE;
                flushed = 1;
@@ -1121,7 +1122,8 @@ void radeonFinish(GLcontext * ctx)
        struct gl_framebuffer *fb = ctx->DrawBuffer;
        int i;
 
-       ctx->Driver.Flush(ctx); /* +r6/r7 */
+       if (ctx->Driver.Flush)
+               ctx->Driver.Flush(ctx); /* +r6/r7 */
 
        if (radeon->radeonScreen->kernel_mm) {
                for (i = 0; i < fb->_NumColorDrawBuffers; i++) {
index 8fa665e49cffc5bce32a524ab842aa3b085063d4..ea18f1ee2dbe7574f913944f414c6c561ae8bec8 100644 (file)
@@ -165,7 +165,8 @@ radeon_alloc_renderbuffer_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
       return GL_FALSE;
    }
 
-  ctx->Driver.Flush(ctx); /* +r6/r7 */
+  if (ctx->Driver.Flush)
+         ctx->Driver.Flush(ctx); /* +r6/r7 */
 
   if (rrb->bo)
     radeon_bo_unref(rrb->bo);
@@ -381,7 +382,8 @@ radeon_framebuffer_renderbuffer(GLcontext * ctx,
                                GLenum attachment, struct gl_renderbuffer *rb)
 {
 
-   ctx->Driver.Flush(ctx); /* +r6/r7 */
+       if (ctx->Driver.Flush)
+               ctx->Driver.Flush(ctx); /* +r6/r7 */
 
    _mesa_framebuffer_renderbuffer(ctx, fb, attachment, rb);
    radeon_draw_buffer(ctx, fb);