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

Author: Roland Scheidegger <srol...@vmware.com>
Date:   Tue Mar 24 21:56:40 2020 +0100

gallivm: disable rgtc/latc SNORM accellerated fetches

Unfortunately this appears to be bugged (it seems the piglit tests aren't
quite exhaustive enough). I'm almost certain it's the lerp
(lp_build_lerpdxta()) which doesn't handle signed numbers correctly, let's
disable for now.

Reviewed-by: Dave Airlie <airl...@redhat.com>
Tested-by: Marge Bot 
<https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4311>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4311>

---

 src/gallium/auxiliary/gallivm/lp_bld_format_aos.c | 32 ++++++++++++++---------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c 
b/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c
index f8e1a963bb4..781ceb8b03d 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c
@@ -770,19 +770,25 @@ lp_build_fetch_rgba_aos(struct gallivm_state *gallivm,
                        format_desc->format == PIPE_FORMAT_LATC1_SNORM ||
                        format_desc->format == PIPE_FORMAT_LATC2_SNORM);
 
-      tmp = lp_build_fetch_rgtc_rgba_aos(gallivm,
-                                         format_desc,
-                                         num_pixels,
-                                         base_ptr,
-                                         offset,
-                                         i, j,
-                                         cache);
-
-      lp_build_conv(gallivm,
-                    tmp_type, type,
-                    &tmp, 1, &tmp, 1);
-
-       return tmp;
+      if (!tmp_type.sign) {
+         /*
+          * FIXME: this is buggy for snorm formats, likely the lerp is
+          * busted.
+          */
+         tmp = lp_build_fetch_rgtc_rgba_aos(gallivm,
+                                            format_desc,
+                                            num_pixels,
+                                            base_ptr,
+                                            offset,
+                                            i, j,
+                                            cache);
+
+         lp_build_conv(gallivm,
+                       tmp_type, type,
+                       &tmp, 1, &tmp, 1);
+
+         return tmp;
+      }
    }
 
    /*

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to