OSDN Git Service

radeon/r200/r300: fix missing dma buffer validation
authorDave Airlie <airlied@redhat.com>
Tue, 7 Apr 2009 05:05:53 +0000 (15:05 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 7 Apr 2009 05:08:56 +0000 (15:08 +1000)
this make gnome shell run

src/mesa/drivers/dri/r200/r200_state.c
src/mesa/drivers/dri/r300/r300_texstate.c
src/mesa/drivers/dri/radeon/radeon_common.c
src/mesa/drivers/dri/radeon/radeon_state.c

index f040713..1b9724d 100644 (file)
@@ -2308,6 +2308,9 @@ static GLboolean r200ValidateBuffers(GLcontext *ctx)
                           RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM, 0);
    }
 
+   if (rmesa->radeon.dma.current)
+      radeon_validate_bo(&rmesa->radeon, rmesa->radeon.dma.current, RADEON_GEM_DOMAIN_GTT, 0);
+
    return radeon_revalidate_bos(ctx);
 }
 
index 5a87b5d..cf4cad7 100644 (file)
@@ -313,6 +313,8 @@ GLboolean r300ValidateBuffers(GLcontext * ctx)
                        radeon_validate_bo(&rmesa->radeon, t->mt->bo,
                                           RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM, 0);
        }
+       if (rmesa->radeon.dma.current)
+               radeon_validate_bo(&rmesa->radeon, rmesa->radeon.dma.current, RADEON_GEM_DOMAIN_GTT, 0);
 
        return radeon_revalidate_bos(ctx);
 }
index a5b8d32..756c09f 100644 (file)
@@ -789,14 +789,10 @@ void radeon_draw_buffer(GLcontext *ctx, struct gl_framebuffer *fb)
  */
 void radeonDrawBuffer( GLcontext *ctx, GLenum mode )
 {
-       radeonContextPtr radeon = RADEON_CONTEXT(ctx);
-       
        if (RADEON_DEBUG & DEBUG_DRI)
                fprintf(stderr, "%s %s\n", __FUNCTION__,
                        _mesa_lookup_enum_by_nr( mode ));
        
-       radeon_firevertices(radeon);    /* don't pipeline cliprect changes */
-       
        radeon_draw_buffer(ctx, ctx->DrawBuffer);
 }
 
index dcca326..28eea44 100644 (file)
@@ -2082,6 +2082,10 @@ static GLboolean r100ValidateBuffers(GLcontext *ctx)
                           RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM, 0);
    }
 
+   if (rmesa->radeon.dma.current)
+       radeon_validate_bo(&rmesa->radeon, rmesa->radeon.dma.current,
+                         RADEON_GEM_DOMAIN_GTT, 0);
+
    return radeon_revalidate_bos(ctx);
 }