Scalar mode has been default since Broadwell, and vector mode is getting
increasingly unmaintained.  There are a few things that don't even fully
work in vector mode on Skylake, but we've never cared because nobody
uses it.  There's no point in porting it forward to new platforms.

So, just ignore the debug options to force it on.
---
 src/intel/compiler/brw_compiler.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

 Only compile tested.

diff --git a/src/intel/compiler/brw_compiler.c 
b/src/intel/compiler/brw_compiler.c
index cd9473f9a3b..aa896b9a336 100644
--- a/src/intel/compiler/brw_compiler.c
+++ b/src/intel/compiler/brw_compiler.c
@@ -112,16 +112,22 @@ brw_compiler_create(void *mem_ctx, const struct 
gen_device_info *devinfo)
 
    compiler->precise_trig = env_var_as_boolean("INTEL_PRECISE_TRIG", false);
 
-   compiler->scalar_stage[MESA_SHADER_VERTEX] =
-      devinfo->gen >= 8 && !(INTEL_DEBUG & DEBUG_VEC4VS);
-   compiler->scalar_stage[MESA_SHADER_TESS_CTRL] =
-      devinfo->gen >= 8 && env_var_as_boolean("INTEL_SCALAR_TCS", true);
-   compiler->scalar_stage[MESA_SHADER_TESS_EVAL] =
-      devinfo->gen >= 8 && env_var_as_boolean("INTEL_SCALAR_TES", true);
-   compiler->scalar_stage[MESA_SHADER_GEOMETRY] =
-      devinfo->gen >= 8 && env_var_as_boolean("INTEL_SCALAR_GS", true);
-   compiler->scalar_stage[MESA_SHADER_FRAGMENT] = true;
-   compiler->scalar_stage[MESA_SHADER_COMPUTE] = true;
+   if (devinfo->gen >= 10) {
+      /* We don't support vec4 mode on Cannonlake. */
+      for (int i = MESA_SHADER_VERTEX; i < MESA_SHADER_STAGES; i++)
+         compiler->scalar_stage[i] = true;
+   } else {
+      compiler->scalar_stage[MESA_SHADER_VERTEX] =
+         devinfo->gen >= 8 && !(INTEL_DEBUG & DEBUG_VEC4VS);
+      compiler->scalar_stage[MESA_SHADER_TESS_CTRL] =
+         devinfo->gen >= 8 && env_var_as_boolean("INTEL_SCALAR_TCS", true);
+      compiler->scalar_stage[MESA_SHADER_TESS_EVAL] =
+         devinfo->gen >= 8 && env_var_as_boolean("INTEL_SCALAR_TES", true);
+      compiler->scalar_stage[MESA_SHADER_GEOMETRY] =
+         devinfo->gen >= 8 && env_var_as_boolean("INTEL_SCALAR_GS", true);
+      compiler->scalar_stage[MESA_SHADER_FRAGMENT] = true;
+      compiler->scalar_stage[MESA_SHADER_COMPUTE] = true;
+   }
 
    /* We want the GLSL compiler to emit code that uses condition codes */
    for (int i = 0; i < MESA_SHADER_STAGES; i++) {
-- 
2.12.2

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

Reply via email to