summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_blit.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-07-18 00:17:46 +0200
committerMarek Olšák <[email protected]>2012-07-18 00:21:53 +0200
commitb242adbe5cfa165b252064a1ea36f802d8251ef1 (patch)
tree9438e162228ccdf0684c17a7fb9613e2a8dcb5d9 /src/gallium/drivers/r600/r600_blit.c
parent611dd529425281d73f1f0ad2000362d4a5525a25 (diff)
r600g: remove needless wrapper r600_texture_depth_flush
Diffstat (limited to 'src/gallium/drivers/r600/r600_blit.c')
-rw-r--r--src/gallium/drivers/r600/r600_blit.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 9429a1bdcc8..6147a9fd610 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -336,10 +336,15 @@ static void r600_resource_copy_region(struct pipe_context *ctx,
return;
}
- if (rsrc->is_depth && !rsrc->is_flushing_texture)
- r600_texture_depth_flush(ctx, src, NULL,
- src_level, src_level,
- src_box->z, src_box->z + src_box->depth - 1);
+ /* This must be done before entering u_blitter to avoid recursion. */
+ if (rsrc->is_depth && !rsrc->is_flushing_texture) {
+ if (!r600_init_flushed_depth_texture(ctx, src, NULL))
+ return; /* error */
+
+ r600_blit_uncompress_depth(ctx, rsrc, NULL,
+ src_level, src_level,
+ src_box->z, src_box->z + src_box->depth - 1);
+ }
restore_orig[0] = restore_orig[1] = FALSE;