Mesa (master): radeonsi: copy *8_SNORM bits exactly in resource_copy_region

Marek Olšák mareko at kemper.freedesktop.org
Fri Jul 31 14:51:32 UTC 2015


Module: Mesa
Branch: master
Commit: 30509788641a413742098f21a4ee0087b1f86e18
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=30509788641a413742098f21a4ee0087b1f86e18

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Thu Jul 30 17:38:44 2015 +0200

radeonsi: copy *8_SNORM bits exactly in resource_copy_region

Disabling the FP16 mode didn't help.

If needed, we can use this trick for blits too, but not for scaled blits.

+ 4 piglits

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

---

 src/gallium/drivers/radeonsi/si_blit.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c
index c892623..61ca2a8 100644
--- a/src/gallium/drivers/radeonsi/si_blit.c
+++ b/src/gallium/drivers/radeonsi/si_blit.c
@@ -522,7 +522,9 @@ void si_resource_copy_region(struct pipe_context *ctx,
 		src_box = &sbox;
 
 		src_force_level = src_level;
-	} else if (!util_blitter_is_copy_supported(sctx->blitter, dst, src)) {
+	} else if (!util_blitter_is_copy_supported(sctx->blitter, dst, src) ||
+		   /* also *8_SNORM has precision issues, use UNORM instead */
+		   util_format_is_snorm(src->format)) {
 		if (util_format_is_subsampled_422(src->format)) {
 			src_templ.format = PIPE_FORMAT_R8G8B8A8_UINT;
 			dst_templ.format = PIPE_FORMAT_R8G8B8A8_UINT;




More information about the mesa-commit mailing list