ilo: add debug flags settable through ILO_DEBUG
authorChia-I Wu <olv@lunarg.com>
Wed, 12 Dec 2012 20:24:40 +0000 (04:24 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Fri, 26 Apr 2013 08:16:42 +0000 (16:16 +0800)
src/gallium/drivers/ilo/ilo_common.h
src/gallium/drivers/ilo/ilo_screen.c

index 5f2c45f920672a2884c246b3d4fa8e3c146023ad..7e6932ac12c479d4311328974cdf05d2e7f83845 100644 (file)
 #define ILO_GEN(gen) ((int) (gen * 100))
 #define ILO_GEN_GET_MAJOR(gen) (gen / 100)
 
+enum ilo_debug {
+   ILO_DEBUG_3D        = 1 << 0,
+   ILO_DEBUG_VS        = 1 << 1,
+   ILO_DEBUG_GS        = 1 << 2,
+   ILO_DEBUG_FS        = 1 << 3,
+   ILO_DEBUG_CS        = 1 << 4,
+
+   ILO_DEBUG_NOHW      = 1 << 8,
+   ILO_DEBUG_NOCACHE   = 1 << 9,
+};
+
+extern int ilo_debug;
+
 /**
  * Print a message, for dumping or debugging.
  */
index 731dc3d7ce8722b4238bfc46e784710035db620f..3ab02e0ec1eaa8fde8fe7578f29bca055c12ee83 100644 (file)
 #include "ilo_public.h"
 #include "ilo_screen.h"
 
+int ilo_debug;
+
+static const struct debug_named_value ilo_debug_flags[] = {
+   { "3d",        ILO_DEBUG_3D,       "Dump 3D commands and states" },
+   { "vs",        ILO_DEBUG_VS,       "Dump vertex shaders" },
+   { "gs",        ILO_DEBUG_GS,       "Dump geometry shaders" },
+   { "fs",        ILO_DEBUG_FS,       "Dump fragment shaders" },
+   { "cs",        ILO_DEBUG_CS,       "Dump compute shaders" },
+   { "nohw",      ILO_DEBUG_NOHW,     "Do not send commands to HW" },
+   { "nocache",   ILO_DEBUG_NOCACHE,  "Always invalidate HW caches" },
+   DEBUG_NAMED_VALUE_END
+};
+
 static void
 ilo_screen_destroy(struct pipe_screen *screen)
 {
@@ -52,6 +65,8 @@ ilo_screen_create(struct intel_winsys *ws)
    struct ilo_screen *is;
    const struct intel_winsys_info *info;
 
+   ilo_debug = debug_get_flags_option("ILO_DEBUG", ilo_debug_flags, 0);
+
    is = CALLOC_STRUCT(ilo_screen);
    if (!is)
       return NULL;