i965: Add an INTEL_DEBUG=no16 option.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 11 Jan 2013 22:08:05 +0000 (14:08 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 12 Jan 2013 23:35:38 +0000 (15:35 -0800)
Often when debugging, I don't want to see SIMD16 shaders.  It makes
INTEL_DEBUG=vs/fs output much easier to read, especially when a program
dumps many shaders.  Plus, I also want to verify that SIMD8 works before
even considering SIMD16.

v2: Fix the likeliness check (caught by Chris and Eric).

Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/intel/intel_context.c
src/mesa/drivers/dri/intel/intel_context.h

index ae26d07..0d2dde7 100644 (file)
@@ -2585,7 +2585,8 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c,
 
    exec_list *simd16_instructions = NULL;
    fs_visitor v2(brw, c, prog, fp, 16);
-   if (intel->gen >= 5 && c->prog_data.nr_pull_params == 0) {
+   bool no16 = INTEL_DEBUG & DEBUG_NO16;
+   if (intel->gen >= 5 && c->prog_data.nr_pull_params == 0 && likely(!no16)) {
       v2.import_uniforms(&v);
       if (!v2.run()) {
          perf_debug("16-wide shader failed to compile, falling back to "
index f3f9983..798fc6a 100644 (file)
@@ -493,6 +493,7 @@ static const struct dri_debug_control debug_control[] = {
    { "clip",  DEBUG_CLIP },
    { "aub",   DEBUG_AUB },
    { "shader_time", DEBUG_SHADER_TIME },
+   { "no16",  DEBUG_NO16 },
    { NULL,    0 }
 };
 
index dbc5ea0..7ce7c25 100644 (file)
@@ -444,6 +444,7 @@ extern int INTEL_DEBUG;
 #define DEBUG_CLIP      0x2000000
 #define DEBUG_AUB       0x4000000
 #define DEBUG_SHADER_TIME 0x8000000
+#define DEBUG_NO16      0x20000000
 
 #ifdef HAVE_ANDROID_PLATFORM
 #define LOG_TAG "INTEL-MESA"