intel/compiler/cs: Allow simd32 in some more cases with no8 and/or no16
authorJordan Justen <jordan.l.justen@intel.com>
Tue, 3 Mar 2020 10:28:24 +0000 (02:28 -0800)
committerJordan Justen <jordan.l.justen@intel.com>
Thu, 9 Jul 2020 22:44:34 +0000 (15:44 -0700)
If no16 was specified, and the shader can't run in simd8 due to the
local_size, then we need to generate a simd32 program.

If both no8 and no16 are specified, then we need to generate a simd32
program.

Rework:
 * Drop update of `if` that would have changed `do32` to try simd32
   even if simd16 spilled registers. (Caio)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5269>

src/intel/compiler/brw_fs.cpp

index bab816227c0ed8bc8e209dd15199863ddb59d9ab..e10c6705858aeee31eba9dcd07cdee25830c4545 100644 (file)
@@ -9054,7 +9054,7 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
     *
     * TODO: Use performance_analysis and drop this boolean.
     */
-   const bool needs_32 = min_dispatch_width > 16 ||
+   const bool needs_32 = v == NULL ||
                          (INTEL_DEBUG & DEBUG_DO32) ||
                          generate_all;