panfrost: Hide CAP_INT16 behind is_deqp
authorAlyssa Rosenzweig <alyssa@collabora.com>
Wed, 12 May 2021 19:08:19 +0000 (15:08 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 12 May 2021 19:31:34 +0000 (19:31 +0000)
The GLSL precision lowering is still buggy (see !10729), no other driver
enables all the CAPs yet. I don't know enough GLSL IR to be the one to
fix this. In the mean time, this is a hotfix to expose the same set of
CAPs that radeonsi does.

By keeping it with is_deqp, we still get CI coverage of int16.

Closes: #4759
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10777>

src/gallium/drivers/panfrost/pan_screen.c

index b3c12af..6c33bff 100644 (file)
@@ -390,9 +390,12 @@ panfrost_get_shader_param(struct pipe_screen *screen,
         case PIPE_SHADER_CAP_GLSL_16BIT_CONSTS:
                 return !is_nofp16;
         case PIPE_SHADER_CAP_FP16_DERIVATIVES:
-        case PIPE_SHADER_CAP_INT16:
         case PIPE_SHADER_CAP_FP16_CONST_BUFFERS:
                 return pan_is_bifrost(dev) && !is_nofp16;
+        case PIPE_SHADER_CAP_INT16:
+                /* XXX: Advertise this CAP when a proper fix to lower_precision
+                 * lands. GLSL IR validation failure in glmark2 -bterrain */
+                return pan_is_bifrost(dev) && !is_nofp16 && is_deqp;
 
         case PIPE_SHADER_CAP_INT64_ATOMICS:
         case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED: