r600g: inline r600_blit_push_depth and use resource_copy_region
authorMarek Olšák <maraeo@gmail.com>
Mon, 25 Jun 2012 20:53:21 +0000 (22:53 +0200)
committerMarek Olšák <maraeo@gmail.com>
Mon, 25 Jun 2012 21:53:49 +0000 (23:53 +0200)
We are going to have a separate resource for depth texturing and transfers
and this is just a transfer thing.

src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_texture.c

index 6437f314ec04d8bd862d7babcc1d37c774dedd87..031cd39b1492f4192ec4990becb220184317246c 100644 (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);
-}
index b5eff34798726463b890ceaa980b8242d0128531..9806e5b261d43a9864b2b514ce0e7ecf83a9652a 100644 (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 */
index 10f47ec50779e6f38f17d4cad744626f1f730311..236812666f5119370db13947c999c68398425f43 100644 (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);
                }
        }