d3d12: Don't force a GS to be added for 'flat' sysvals
authorJesse Natalie <jenatali@microsoft.com>
Fri, 4 Feb 2022 16:23:42 +0000 (08:23 -0800)
committerMarge Bot <emma+marge@anholt.net>
Fri, 4 Feb 2022 20:49:23 +0000 (20:49 +0000)
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14881>

src/gallium/drivers/d3d12/d3d12_compiler.cpp

index 747c880..754a178 100644 (file)
@@ -475,7 +475,10 @@ has_flat_varyings(struct d3d12_context *ctx)
 
    nir_foreach_variable_with_modes(input, fs->current->nir,
                                    nir_var_shader_in) {
-      if (input->data.interpolation == INTERP_MODE_FLAT)
+      if (input->data.interpolation == INTERP_MODE_FLAT &&
+          /* Disregard sysvals */
+          (input->data.location >= VARYING_SLOT_VAR0 ||
+             input->data.location <= VARYING_SLOT_TEX7))
          return true;
    }