r600g: fix db flush breaking config state
[mesa.git] / 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);
 }