From: Edward O'Callaghan Date: Mon, 7 Dec 2015 13:36:26 +0000 (+1100) Subject: r600g: allow copying between compatible un/compressed formats X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d13ac272006f0298146508d7d7b3b67e7fa27133;p=mesa.git r600g: allow copying between compatible un/compressed formats See: `commit e82c527f1fc2f8ddc64954ecd06b0de3cea92e93` which is where a block in src maps to a pixel in dst and vice versa. e.g. DXT1 <-> R32G32_UINT DXT5 <-> R32G32B32A32_UINT Reviewed-by: Marek Olšák Signed-off-by: Edward O'Callaghan Signed-off-by: Dave Airlie --- diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c index 3d44ff2e6a6..8a08dbdd82a 100644 --- a/src/gallium/drivers/r600/r600_blit.c +++ b/src/gallium/drivers/r600/r600_blit.c @@ -656,7 +656,8 @@ void r600_resource_copy_region(struct pipe_context *ctx, util_blitter_default_dst_texture(&dst_templ, dst, dst_level, dstz); util_blitter_default_src_texture(&src_templ, src, src_level); - if (util_format_is_compressed(src->format)) { + if (util_format_is_compressed(src->format) || + util_format_is_compressed(dst->format)) { unsigned blocksize = util_format_get_blocksize(src->format); if (blocksize == 8)