C_SOURCES := \
core/ilo_core.h \
+ core/ilo_debug.c \
+ core/ilo_debug.h \
core/intel_winsys.h \
ilo_blit.c \
ilo_blit.h \
--- /dev/null
+/*
+ * 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);
+}
--- /dev/null
+/*
+ * 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 */
#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;
int urb_size;
};
-extern int ilo_debug;
-
static inline int
ilo_dev_gen(const struct ilo_dev_info *dev)
{
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 */
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)
{
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)