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.
This commit is contained in:
Marek Olšák
2012-06-25 22:53:21 +02:00
parent da98bb6fc1
commit 4891c5dc64
3 changed files with 11 additions and 18 deletions

View File

@@ -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);
}

View File

@@ -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 */

View File

@@ -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);
}
}