r600g: fix db flush breaking config state
authorDave Airlie <airlied@redhat.com>
Tue, 28 Sep 2010 04:27:22 +0000 (14:27 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 28 Sep 2010 04:32:13 +0000 (14:32 +1000)
src/gallium/drivers/r600/r600_state.c

index 791b39a001e475778a2c0eda7964013ec5a8d2b8..86f9825b526da47e3a26c7adde713826bef665fc 100644 (file)
@@ -662,17 +662,17 @@ static int setup_db_flush(struct r600_context *rctx, struct radeon_state *flush)
 
        surf = rctx->framebuffer->state.framebuffer.zsbuf;
 
-       if (!surf)
-               return 0;
-               
        radeon_state_init(flush, rscreen->rw, R600_STATE_DB_FLUSH, 0, 0);
-       rtex = (struct r600_resource_texture*)surf->texture;
-       rbuffer = &rtex->resource;
-       /* just need to the bo to the flush list */
-       radeon_ws_bo_reference(rscreen->rw, &flush->bo[0], rbuffer->bo);
-       flush->placement[0] = RADEON_GEM_DOMAIN_VRAM;
 
-       flush->nbo = 1;
+       if (surf) {
+               rtex = (struct r600_resource_texture*)surf->texture;
+               rbuffer = &rtex->resource;
+               /* just need to the bo to the flush list */
+               radeon_ws_bo_reference(rscreen->rw, &flush->bo[0], rbuffer->bo);
+               flush->placement[0] = RADEON_GEM_DOMAIN_VRAM;
+
+               flush->nbo = 1;
+       }
        return radeon_state_pm4(flush);
 }