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 <airlied@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>
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;
+ }
}
/*