i915g: Turn off FP16 in the vertex shaders.
authorEmma Anholt <emma@anholt.net>
Mon, 20 Dec 2021 23:15:38 +0000 (15:15 -0800)
committerMarge Bot <emma+marge@anholt.net>
Wed, 5 Jan 2022 03:15:15 +0000 (03:15 +0000)
This ended up being turned on in gallivm, but since we use nir_to_tgsi on
the VS and TGSI doesn't have FP16, we can't let that happen.

Fixes: f814a2449e2c ("llvmpipe: enable FP16 and update CL + traces piglit results.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14403>

src/gallium/drivers/i915/i915_screen.c

index d65d03d..d2ab19c 100644 (file)
@@ -283,7 +283,13 @@ i915_get_shader_param(struct pipe_screen *screen, enum pipe_shader_type shader,
        */
       return 0;
 
+   /* i915 can't do these, and even if gallivm NIR can we call nir_to_tgsi
+    * manually and TGSI can't.
+    */
    case PIPE_SHADER_CAP_INT16:
+   case PIPE_SHADER_CAP_FP16:
+   case PIPE_SHADER_CAP_FP16_DERIVATIVES:
+   case PIPE_SHADER_CAP_FP16_CONST_BUFFERS:
       return 0;
 
    case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
@@ -343,9 +349,6 @@ i915_get_shader_param(struct pipe_screen *screen, enum pipe_shader_type shader,
       case PIPE_SHADER_CAP_SUBROUTINES:
          return 0;
       case PIPE_SHADER_CAP_INT64_ATOMICS:
-      case PIPE_SHADER_CAP_FP16:
-      case PIPE_SHADER_CAP_FP16_DERIVATIVES:
-      case PIPE_SHADER_CAP_FP16_CONST_BUFFERS:
       case PIPE_SHADER_CAP_INT16:
       case PIPE_SHADER_CAP_GLSL_16BIT_CONSTS:
          return 0;