summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2017-08-21 19:30:24 -0700
committerJason Ekstrand <jason.ekstrand@intel.com>2017-11-07 10:37:52 -0800
commitb1a9cdede4b500560ba6b44761296f09b4a7558f (patch)
tree6da76b6d01dfdffeb6cb269d0d5fa7e9d5ae1b59
parent1077981eb56f63b595c3bd74ab8af2e11af2a8eb (diff)
intel/cs: Drop max_dispatch_width checks from compile_cs
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>
-rw-r--r--src/intel/compiler/brw_fs.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index 7782b23ff71..bb5f696d87a 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -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);