intel/fs: Add INTEL_DEBUG=no32 debugging flag.
authorFrancisco Jerez <currojerez@riseup.net>
Wed, 22 Apr 2020 20:29:34 +0000 (13:29 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Wed, 29 Apr 2020 06:01:27 +0000 (23:01 -0700)
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>
src/intel/compiler/brw_fs.cpp
src/intel/dev/gen_debug.c
src/intel/dev/gen_debug.h

index c65bb2042421e0d4f3707fa2cb8fa8395eeaec1f..57d121392337377ffe0585142355d02f4203d43d 100644 (file)
@@ -8755,7 +8755,8 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
 
    /* 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);
index ffed3045485eb4821928b07051f467a18951dc55..4e610dc4169c0fbd6503fef2626c47f9177af13c 100644 (file)
@@ -90,6 +90,7 @@ static const struct debug_control debug_control[] = {
    { "bt",          DEBUG_BT },
    { "pc",          DEBUG_PIPE_CONTROL },
    { "nofc",        DEBUG_NO_FAST_CLEAR },
+   { "no32",        DEBUG_NO32 },
    { NULL,    0 }
 };
 
index 5c3e100e8dea740210b5b9d3e19495733165cb98..aff96ae3fa24df19eebab8ce7b2bb05fcf03f0c4 100644 (file)
@@ -88,6 +88,7 @@ extern uint64_t INTEL_DEBUG;
 #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
@@ -96,7 +97,7 @@ extern uint64_t INTEL_DEBUG;
 #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"