i965: Add a new debug mode for the VUE map
authorChris Forbes <chrisf@ijw.co.nz>
Sun, 4 Aug 2013 07:38:37 +0000 (19:38 +1200)
committerChris Forbes <chrisf@ijw.co.nz>
Sat, 10 Aug 2013 08:28:45 +0000 (20:28 +1200)
INTEL_DEBUG=vue now emits a listing of each slot in the VUE map,
and the corresponding interpolation mode.

V2: Fix whitespace issues.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_interpolation_map.c
src/mesa/drivers/dri/i965/intel_context.c
src/mesa/drivers/dri/i965/intel_context.h

index 7b7dbef135461286f286016eb0ada83a5910e8f9..597fc965f54cf2a91ceb1b31c8388ddbe118c3e8 100644 (file)
 
 #include "brw_state.h"
 
+static char const *get_qual_name(int mode)
+{
+   switch (mode) {
+      case INTERP_QUALIFIER_NONE:          return "none";
+      case INTERP_QUALIFIER_FLAT:          return "flat";
+      case INTERP_QUALIFIER_SMOOTH:        return "smooth";
+      case INTERP_QUALIFIER_NOPERSPECTIVE: return "nopersp";
+      default:                             return "???";
+   }
+}
+
 
 /* Set up interpolation modes for every element in the VUE */
 static void
@@ -72,6 +83,22 @@ brw_setup_vue_interpolation(struct brw_context *brw)
 
       brw->interpolation_mode.mode[i] = mode;
    }
+
+   if (unlikely(INTEL_DEBUG & DEBUG_VUE)) {
+      printf("VUE map:\n");
+      for (int i = 0; i < vue_map->num_slots; i++) {
+         int varying = vue_map->slot_to_varying[i];
+         if (varying == -1) {
+            printf("%d: --\n", i);
+            continue;
+         }
+
+         printf("%d: %d %s ofs %d\n",
+               i, varying,
+               get_qual_name(brw->interpolation_mode.mode[i]),
+               brw_vue_slot_to_offset(i));
+      }
+   }
 }
 
 
index 461d4931c410c100e0bb3b1a93b9354f14fe6104..840c1a5bf1b04ad2cc2cb8ef6a72bc11444d1806 100644 (file)
@@ -332,6 +332,7 @@ static const struct dri_debug_control debug_control[] = {
    { "shader_time", DEBUG_SHADER_TIME },
    { "no16",  DEBUG_NO16 },
    { "blorp", DEBUG_BLORP },
+   { "vue",   DEBUG_VUE },
    { NULL,    0 }
 };
 
index 188ac895a5f20e5e74e1d7bbe9ca6ba939ba4334..734c57cdc0332787f6238db0914dfd35e584aa9b 100644 (file)
@@ -190,6 +190,7 @@ extern int INTEL_DEBUG;
 #define DEBUG_SHADER_TIME 0x8000000
 #define DEBUG_BLORP     0x10000000
 #define DEBUG_NO16      0x20000000
+#define DEBUG_VUE       0x40000000
 
 #ifdef HAVE_ANDROID_PLATFORM
 #define LOG_TAG "INTEL-MESA"