From 4b49fcbb9a26680e9a4ef441668e0dd817529d47 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 3 Feb 2011 14:45:40 +1000 Subject: r600g: flush depth texture before a blit from it. If we are going to blit from a depth texture we need to flush it before we blit from it. Signed-off-by: Dave Airlie --- src/gallium/drivers/r600/r600_blit.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/gallium/drivers') diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c index bf21ab432e..c11268ccca 100644 --- a/src/gallium/drivers/r600/r600_blit.c +++ b/src/gallium/drivers/r600/r600_blit.c @@ -208,8 +208,14 @@ static void r600_resource_copy_region(struct pipe_context *ctx, unsigned src_level, const struct pipe_box *src_box) { + struct r600_resource_texture *rsrc = (struct r600_resource_texture*)src; + + if (rsrc->depth && !rsrc->is_flushing_texture) + r600_texture_depth_flush(ctx, src); + r600_hw_copy_region(ctx, dst, dst_level, dstx, dsty, dstz, src, src_level, src_box); + } void r600_init_blit_functions(struct r600_pipe_context *rctx) -- cgit v1.2.3