summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/ilo
diff options
context:
space:
mode:
authorChia-I Wu <[email protected]>2012-12-13 04:24:40 +0800
committerChia-I Wu <[email protected]>2013-04-26 16:16:42 +0800
commite74d67738d2e10a5119298bb10c413cbe66b3255 (patch)
tree00f6694411671cf0f41de5af5c519babe963d4c2 /src/gallium/drivers/ilo
parent63b572010554d62c3463c8db4e016ecbed117178 (diff)
ilo: add debug flags settable through ILO_DEBUG
Diffstat (limited to 'src/gallium/drivers/ilo')
-rw-r--r--src/gallium/drivers/ilo/ilo_common.h13
-rw-r--r--src/gallium/drivers/ilo/ilo_screen.c15
2 files changed, 28 insertions, 0 deletions
diff --git a/src/gallium/drivers/ilo/ilo_common.h b/src/gallium/drivers/ilo/ilo_common.h
index 5f2c45f9206..7e6932ac12c 100644
--- a/src/gallium/drivers/ilo/ilo_common.h
+++ b/src/gallium/drivers/ilo/ilo_common.h
@@ -43,6 +43,19 @@
#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.
*/
diff --git a/src/gallium/drivers/ilo/ilo_screen.c b/src/gallium/drivers/ilo/ilo_screen.c
index 731dc3d7ce8..3ab02e0ec1e 100644
--- a/src/gallium/drivers/ilo/ilo_screen.c
+++ b/src/gallium/drivers/ilo/ilo_screen.c
@@ -35,6 +35,19 @@
#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;