aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-06-25 22:53:21 +0200
committerMarek Olšák <[email protected]>2012-06-25 23:53:49 +0200
commit4891c5dc64ccd8cf2bf8a8550ae23e1a61806a7d (patch)
treea2160064ae83ba0873a512ebf05f0c42bf9d8660
parentda98bb6fc105e1a2f688a1713ca9e50f0ac8fbed (diff)
r600g: inline r600_blit_push_depth and use resource_copy_region
We are going to have a separate resource for depth texturing and transfers and this is just a transfer thing.
-rw-r--r--src/gallium/drivers/r600/r600_blit.c16
-rw-r--r--src/gallium/drivers/r600/r600_pipe.h1
-rw-r--r--src/gallium/drivers/r600/r600_texture.c12
3 files changed, 11 insertions, 18 deletions
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 6437f314ec0..031cd39b149 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -384,19 +384,3 @@ void r600_init_blit_functions(struct r600_context *rctx)
rctx->context.clear_depth_stencil = r600_clear_depth_stencil;
rctx->context.resource_copy_region = r600_resource_copy_region;
}
-
-void r600_blit_push_depth(struct pipe_context *ctx, struct r600_resource_texture *texture)
-{
- struct pipe_box sbox;
-
- sbox.x = sbox.y = sbox.z = 0;
- sbox.width = texture->resource.b.b.width0;
- sbox.height = texture->resource.b.b.height0;
- /* XXX that might be wrong */
- sbox.depth = 1;
-
- r600_hw_copy_region(ctx, (struct pipe_resource *)texture, 0,
- 0, 0, 0,
- (struct pipe_resource *)texture->flushed_depth_texture, 0,
- &sbox);
-}
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h
index b5eff347987..9806e5b261d 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -405,7 +405,6 @@ boolean evergreen_is_format_supported(struct pipe_screen *screen,
/* r600_blit.c */
void r600_init_blit_functions(struct r600_context *rctx);
void r600_blit_uncompress_depth(struct pipe_context *ctx, struct r600_resource_texture *texture);
-void r600_blit_push_depth(struct pipe_context *ctx, struct r600_resource_texture *texture);
void r600_flush_depth_textures(struct r600_context *rctx);
/* r600_buffer.c */
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index 10f47ec5077..236812666f5 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -906,7 +906,17 @@ void r600_texture_transfer_destroy(struct pipe_context *ctx,
if (rtex->is_depth && !rtex->is_flushing_texture) {
if ((transfer->usage & PIPE_TRANSFER_WRITE) && rtex->flushed_depth_texture) {
- r600_blit_push_depth(ctx, rtex);
+ struct pipe_box sbox;
+
+ sbox.x = sbox.y = sbox.z = 0;
+ sbox.width = texture->width0;
+ sbox.height = texture->height0;
+ /* XXX that might be wrong */
+ sbox.depth = 1;
+
+ ctx->resource_copy_region(ctx, texture, 0, 0, 0, 0,
+ &rtex->flushed_depth_texture->resource.b.b, 0,
+ &sbox);
}
}