i965: Add do32 debug option.
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 27 May 2016 04:28:45 +0000 (21:28 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Sat, 28 May 2016 06:29:06 +0000 (23:29 -0700)
The do32 INTEL_DEBUG option causes the back-end to try to generate a
SIMD32 program when compiling a compute shader regardless of the
specified compute shader workgroup size, which will be useful for
testing SIMD32 code generation in the most common case in which the
workgroup size doesn't exceed the SIMD16 limit so SIMD32 codegen
wouldn't be automatically enabled.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/intel_debug.c
src/mesa/drivers/dri/i965/intel_debug.h

index 8f657e67641b954507bc46a31cf1e09941afa7fd..f5add6ec676b1081c4db7301ba341b48cc9cbd0b 100644 (file)
@@ -6528,7 +6528,7 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
                  NULL, /* Never used in core profile */
                  shader, 32, shader_time_index);
    if (!fail_msg && v8.max_dispatch_width >= 32 &&
-       simd_required > 16) {
+       (simd_required > 16 || (INTEL_DEBUG & DEBUG_DO32))) {
       /* Try a SIMD32 compile */
       if (simd_required <= 8)
          v32.import_uniforms(&v8);
index e08c2969e06a7bcf88b9b37d2d337ce9b46792d8..2589c43ab5e401460097e6bf61c83a0bba66f293 100644 (file)
@@ -79,6 +79,7 @@ static const struct debug_control debug_control[] = {
    { "ds",          DEBUG_TES },
    { "tes",         DEBUG_TES },
    { "l3",          DEBUG_L3 },
+   { "do32",        DEBUG_DO32 },
    { NULL,    0 }
 };
 
index b7b51112d9244ede5c7e8eddd71381e80e7ade45..22ad83480dae17ada13e20c24ba87e1416ea4195 100644 (file)
@@ -72,6 +72,7 @@ extern uint64_t INTEL_DEBUG;
 #define DEBUG_TCS                 (1ull << 36)
 #define DEBUG_TES                 (1ull << 37)
 #define DEBUG_L3                  (1ull << 38)
+#define DEBUG_DO32                (1ull << 39)
 
 #ifdef HAVE_ANDROID_PLATFORM
 #define LOG_TAG "INTEL-MESA"