intel/cs: Drop max_dispatch_width checks from compile_cs
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 22 Aug 2017 02:30:24 +0000 (19:30 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 7 Nov 2017 18:37:52 +0000 (10:37 -0800)
The only things that adjust fs_visitor::max_dispatch_width are render
target writes which don't happen in compute shaders so they're
pointless.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
src/intel/compiler/brw_fs.cpp

index 7782b23ff71d4e9983d8f885ae75c0df1083151f..bb5f696d87ad9d23a6c8b6764e7e9c2a0df1f7d3 100644 (file)
@@ -6860,6 +6860,9 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
       if (!v8.run_cs(min_dispatch_width)) {
          fail_msg = v8.fail_msg;
       } else {
+         /* We should always be able to do SIMD32 for compute shaders */
+         assert(v8.max_dispatch_width >= 32);
+
          cfg = v8.cfg;
          cs_set_simd_size(prog_data, 8);
          cs_fill_push_const_info(compiler->devinfo, prog_data);
@@ -6871,8 +6874,7 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
                  NULL, /* Never used in core profile */
                  shader, 16, shader_time_index);
    if (likely(!(INTEL_DEBUG & DEBUG_NO16)) &&
-       !fail_msg && v8.max_dispatch_width >= 16 &&
-       min_dispatch_width <= 16) {
+       !fail_msg && min_dispatch_width <= 16) {
       /* Try a SIMD16 compile */
       if (min_dispatch_width <= 8)
          v16.import_uniforms(&v8);
@@ -6886,6 +6888,9 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
                "enough threads for SIMD8";
          }
       } else {
+         /* We should always be able to do SIMD32 for compute shaders */
+         assert(v16.max_dispatch_width >= 32);
+
          cfg = v16.cfg;
          cs_set_simd_size(prog_data, 16);
          cs_fill_push_const_info(compiler->devinfo, prog_data);
@@ -6896,8 +6901,7 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
    fs_visitor v32(compiler, log_data, mem_ctx, key, &prog_data->base,
                  NULL, /* Never used in core profile */
                  shader, 32, shader_time_index);
-   if (!fail_msg && v8.max_dispatch_width >= 32 &&
-       (min_dispatch_width > 16 || (INTEL_DEBUG & DEBUG_DO32))) {
+   if (!fail_msg && (min_dispatch_width > 16 || (INTEL_DEBUG & DEBUG_DO32))) {
       /* Try a SIMD32 compile */
       if (min_dispatch_width <= 8)
          v32.import_uniforms(&v8);