ilo: add ilo_debug.[ch] to core
authorChia-I Wu <olvaffe@gmail.com>
Sat, 7 Mar 2015 20:18:14 +0000 (04:18 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Sat, 2 May 2015 14:14:06 +0000 (22:14 +0800)
They consist of the debug helpers that used to live in ilo_common.h and
ilo_screen.c.

src/gallium/drivers/ilo/Makefile.sources
src/gallium/drivers/ilo/core/ilo_debug.c [new file with mode: 0644]
src/gallium/drivers/ilo/core/ilo_debug.h [new file with mode: 0644]
src/gallium/drivers/ilo/ilo_common.h
src/gallium/drivers/ilo/ilo_screen.c

index be5afb144cd1ba4cc4b5e1b739946efdcd18750e..61c737b150d20e13b53948c6cbdd297ac11fe29c 100644 (file)
@@ -1,5 +1,7 @@
 C_SOURCES := \
        core/ilo_core.h \
+       core/ilo_debug.c \
+       core/ilo_debug.h \
        core/intel_winsys.h \
        ilo_blit.c \
        ilo_blit.h \
diff --git a/src/gallium/drivers/ilo/core/ilo_debug.c b/src/gallium/drivers/ilo/core/ilo_debug.c
new file mode 100644 (file)
index 0000000..168818b
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2012-2013 LunarG, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Chia-I Wu <olv@lunarg.com>
+ */
+
+#include "ilo_debug.h"
+
+static const struct debug_named_value ilo_debug_flags[] = {
+   { "batch",     ILO_DEBUG_BATCH,    "Dump batch/dynamic/surface/instruction buffers" },
+   { "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" },
+   { "draw",      ILO_DEBUG_DRAW,     "Show draw information" },
+   { "submit",    ILO_DEBUG_SUBMIT,   "Show batch buffer submissions" },
+   { "hang",      ILO_DEBUG_HANG,     "Detect GPU hangs" },
+   { "nohw",      ILO_DEBUG_NOHW,     "Do not send commands to HW" },
+   { "nocache",   ILO_DEBUG_NOCACHE,  "Always invalidate HW caches" },
+   { "nohiz",     ILO_DEBUG_NOHIZ,    "Disable HiZ" },
+   DEBUG_NAMED_VALUE_END
+};
+
+int ilo_debug;
+
+void
+ilo_debug_init(const char *name)
+{
+   ilo_debug = debug_get_flags_option(name, ilo_debug_flags, 0);
+}
diff --git a/src/gallium/drivers/ilo/core/ilo_debug.h b/src/gallium/drivers/ilo/core/ilo_debug.h
new file mode 100644 (file)
index 0000000..d9c4604
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2012-2013 LunarG, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Chia-I Wu <olv@lunarg.com>
+ */
+
+#ifndef ILO_DEBUG_H
+#define ILO_DEBUG_H
+
+#include "ilo_core.h"
+
+/* enable debug flags affecting hot pathes only with debug builds */
+#ifdef DEBUG
+#define ILO_DEBUG_HOT 1
+#else
+#define ILO_DEBUG_HOT 0
+#endif
+
+enum ilo_debug {
+   ILO_DEBUG_BATCH     = 1 << 0,
+   ILO_DEBUG_VS        = 1 << 1,
+   ILO_DEBUG_GS        = 1 << 2,
+   ILO_DEBUG_FS        = 1 << 3,
+   ILO_DEBUG_CS        = 1 << 4,
+   ILO_DEBUG_DRAW      = ILO_DEBUG_HOT << 5,
+   ILO_DEBUG_SUBMIT    = 1 << 6,
+   ILO_DEBUG_HANG      = 1 << 7,
+
+   /* flags that affect the behaviors of the driver */
+   ILO_DEBUG_NOHW      = 1 << 20,
+   ILO_DEBUG_NOCACHE   = 1 << 21,
+   ILO_DEBUG_NOHIZ     = 1 << 22,
+};
+
+extern int ilo_debug;
+
+void
+ilo_debug_init(const char *name);
+
+/**
+ * Print a message, for dumping or debugging.
+ */
+static inline void _util_printf_format(1, 2)
+ilo_printf(const char *format, ...)
+{
+   va_list ap;
+
+   va_start(ap, format);
+   _debug_vprintf(format, ap);
+   va_end(ap);
+}
+
+/**
+ * Print a critical error.
+ */
+static inline void _util_printf_format(1, 2)
+ilo_err(const char *format, ...)
+{
+   va_list ap;
+
+   va_start(ap, format);
+   _debug_vprintf(format, ap);
+   va_end(ap);
+}
+
+/**
+ * Print a warning, silenced for release builds.
+ */
+static inline void _util_printf_format(1, 2)
+ilo_warn(const char *format, ...)
+{
+#ifdef DEBUG
+   va_list ap;
+
+   va_start(ap, format);
+   _debug_vprintf(format, ap);
+   va_end(ap);
+#else
+#endif
+}
+
+#endif /* ILO_DEBUG_H */
index b685c446fc591d6373fe9ddc6e3a155d2f0c7fd3..996de022901a012377329eece2a88c3427e74f95 100644 (file)
 #define ILO_COMMON_H
 
 #include "core/ilo_core.h"
+#include "core/ilo_debug.h"
 
 #define ILO_GEN(gen) ((int) (gen * 100))
 
-/* enable debug flags affecting hot pathes only with debug builds */
-#ifdef DEBUG
-#define ILO_DEBUG_HOT 1
-#else
-#define ILO_DEBUG_HOT 0
-#endif
-
 #define ILO_DEV_ASSERT(dev, min_gen, max_gen) \
    ilo_dev_assert(dev, ILO_GEN(min_gen), ILO_GEN(max_gen))
 
-enum ilo_debug {
-   ILO_DEBUG_BATCH     = 1 << 0,
-   ILO_DEBUG_VS        = 1 << 1,
-   ILO_DEBUG_GS        = 1 << 2,
-   ILO_DEBUG_FS        = 1 << 3,
-   ILO_DEBUG_CS        = 1 << 4,
-   ILO_DEBUG_DRAW      = ILO_DEBUG_HOT << 5,
-   ILO_DEBUG_SUBMIT    = 1 << 6,
-   ILO_DEBUG_HANG      = 1 << 7,
-
-   /* flags that affect the behaviors of the driver */
-   ILO_DEBUG_NOHW      = 1 << 20,
-   ILO_DEBUG_NOCACHE   = 1 << 21,
-   ILO_DEBUG_NOHIZ     = 1 << 22,
-};
-
 struct ilo_dev_info {
    /* these mirror intel_winsys_info */
    int devid;
@@ -79,8 +57,6 @@ struct ilo_dev_info {
    int urb_size;
 };
 
-extern int ilo_debug;
-
 static inline int
 ilo_dev_gen(const struct ilo_dev_info *dev)
 {
@@ -93,46 +69,4 @@ ilo_dev_assert(const struct ilo_dev_info *dev, int min_opqaue, int max_opqaue)
    assert(dev->gen_opaque >= min_opqaue && dev->gen_opaque <= max_opqaue);
 }
 
-/**
- * Print a message, for dumping or debugging.
- */
-static inline void _util_printf_format(1, 2)
-ilo_printf(const char *format, ...)
-{
-   va_list ap;
-
-   va_start(ap, format);
-   _debug_vprintf(format, ap);
-   va_end(ap);
-}
-
-/**
- * Print a critical error.
- */
-static inline void _util_printf_format(1, 2)
-ilo_err(const char *format, ...)
-{
-   va_list ap;
-
-   va_start(ap, format);
-   _debug_vprintf(format, ap);
-   va_end(ap);
-}
-
-/**
- * Print a warning, silenced for release builds.
- */
-static inline void _util_printf_format(1, 2)
-ilo_warn(const char *format, ...)
-{
-#ifdef DEBUG
-   va_list ap;
-
-   va_start(ap, format);
-   _debug_vprintf(format, ap);
-   va_end(ap);
-#else
-#endif
-}
-
 #endif /* ILO_COMMON_H */
index d34c8394e6457a1bc7af8d4be68c66aa7198fb7b..3be134863923d6f5d5f60aa647af9de05c4166f9 100644 (file)
@@ -45,23 +45,6 @@ struct ilo_fence {
    struct intel_bo *bo;
 };
 
-int ilo_debug;
-
-static const struct debug_named_value ilo_debug_flags[] = {
-   { "batch",     ILO_DEBUG_BATCH,    "Dump batch/dynamic/surface/instruction buffers" },
-   { "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" },
-   { "draw",      ILO_DEBUG_DRAW,     "Show draw information" },
-   { "submit",    ILO_DEBUG_SUBMIT,   "Show batch buffer submissions" },
-   { "hang",      ILO_DEBUG_HANG,     "Detect GPU hangs" },
-   { "nohw",      ILO_DEBUG_NOHW,     "Do not send commands to HW" },
-   { "nocache",   ILO_DEBUG_NOCACHE,  "Always invalidate HW caches" },
-   { "nohiz",     ILO_DEBUG_NOHIZ,    "Disable HiZ" },
-   DEBUG_NAMED_VALUE_END
-};
-
 static float
 ilo_get_paramf(struct pipe_screen *screen, enum pipe_capf param)
 {
@@ -831,7 +814,7 @@ 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);
+   ilo_debug_init("ILO_DEBUG");
 
    is = CALLOC_STRUCT(ilo_screen);
    if (!is)