This is useful in order to identify codegen issues caused by SIMD32.
It doesn't currently have any effect on compute shaders since SIMD32
dispatch is only enabled for CS when it's strictly necessary to do so
in order to support the workgroup size requested for the shader --
That might change in the future though when we hook up the SIMD32
heuristic to CS compilation.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/* Currently, the compiler only supports SIMD32 on SNB+ */
if (v8->max_dispatch_width >= 32 && !use_rep_send &&
- devinfo->gen >= 6 && simd16_cfg) {
+ devinfo->gen >= 6 && simd16_cfg &&
+ !(INTEL_DEBUG & DEBUG_NO32)) {
/* Try a SIMD32 compile */
v32 = new fs_visitor(compiler, log_data, mem_ctx, &key->base,
&prog_data->base, shader, 32, shader_time_index32);
{ "bt", DEBUG_BT },
{ "pc", DEBUG_PIPE_CONTROL },
{ "nofc", DEBUG_NO_FAST_CLEAR },
+ { "no32", DEBUG_NO32 },
{ NULL, 0 }
};
#define DEBUG_BT (1ull << 44)
#define DEBUG_PIPE_CONTROL (1ull << 45)
#define DEBUG_NO_FAST_CLEAR (1ull << 46)
+#define DEBUG_NO32 (1ull << 47)
/* These flags are not compatible with the disk shader cache */
#define DEBUG_DISK_CACHE_DISABLE_MASK DEBUG_SHADER_TIME
#define DEBUG_DISK_CACHE_MASK \
(DEBUG_NO16 | DEBUG_NO_DUAL_OBJECT_GS | DEBUG_NO8 | DEBUG_SPILL_FS | \
DEBUG_SPILL_VEC4 | DEBUG_NO_COMPACTION | DEBUG_DO32 | DEBUG_SOFT64 | \
- DEBUG_TCS_EIGHT_PATCH)
+ DEBUG_TCS_EIGHT_PATCH | DEBUG_NO32)
#ifdef HAVE_ANDROID_PLATFORM
#define LOG_TAG "INTEL-MESA"