[Mesa-dev] [PATCH 02/29] i965: Pull out INTEL_DEBUG handling into new intel_debug.[ch] files.
Ian Romanick
idr at freedesktop.org
Mon Sep 30 17:11:38 PDT 2013
On 09/27/2013 04:45 PM, Kenneth Graunke wrote:
> Now that there isn't an intel_context structure, the split between
> brw_context.[ch] and intel_context.[ch] is rather awkward and arbitrary.
> Removing intel_context.[ch] seems desirable, but not everything really
> belongs in brw_context.[ch], either.
>
> Moving INTEL_DEBUG handling into separate intel_debug.[ch] files should
> make them relatively easy to find.
I'm not sure I have a preference, but it seems like this should be
brw_debug.[ch].
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/mesa/drivers/dri/i965/Makefile.sources | 1 +
> src/mesa/drivers/dri/i965/intel_context.c | 53 +-------------
> src/mesa/drivers/dri/i965/intel_context.h | 77 +-------------------
> src/mesa/drivers/dri/i965/intel_debug.c | 88 +++++++++++++++++++++++
> src/mesa/drivers/dri/i965/intel_debug.h | 109 +++++++++++++++++++++++++++++
> 5 files changed, 200 insertions(+), 128 deletions(-)
> create mode 100644 src/mesa/drivers/dri/i965/intel_debug.c
> create mode 100644 src/mesa/drivers/dri/i965/intel_debug.h
>
> diff --git a/src/mesa/drivers/dri/i965/Makefile.sources b/src/mesa/drivers/dri/i965/Makefile.sources
> index f521daa..8da5643 100644
> --- a/src/mesa/drivers/dri/i965/Makefile.sources
> +++ b/src/mesa/drivers/dri/i965/Makefile.sources
> @@ -8,6 +8,7 @@ i965_FILES = \
> intel_buffer_objects.c \
> intel_buffers.c \
> intel_context.c \
> + intel_debug.c \
> intel_extensions.c \
> intel_fbo.c \
> intel_mipmap_tree.c \
> diff --git a/src/mesa/drivers/dri/i965/intel_context.c b/src/mesa/drivers/dri/i965/intel_context.c
> index 850d9a0..5a73e28 100644
> --- a/src/mesa/drivers/dri/i965/intel_context.c
> +++ b/src/mesa/drivers/dri/i965/intel_context.c
> @@ -55,11 +55,6 @@
> #include "utils.h"
> #include "../glsl/ralloc.h"
>
> -#ifndef INTEL_DEBUG
> -int INTEL_DEBUG = (0);
> -#endif
> -
> -
> static const GLubyte *
> intelGetString(struct gl_context * ctx, GLenum name)
> {
> @@ -304,40 +299,6 @@ intel_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
> }
> }
>
> -static const struct dri_debug_control debug_control[] = {
> - { "tex", DEBUG_TEXTURE},
> - { "state", DEBUG_STATE},
> - { "ioctl", DEBUG_IOCTL},
> - { "blit", DEBUG_BLIT},
> - { "mip", DEBUG_MIPTREE},
> - { "fall", DEBUG_PERF},
> - { "perf", DEBUG_PERF},
> - { "bat", DEBUG_BATCH},
> - { "pix", DEBUG_PIXEL},
> - { "buf", DEBUG_BUFMGR},
> - { "reg", DEBUG_REGION},
> - { "fbo", DEBUG_FBO},
> - { "fs", DEBUG_WM },
> - { "gs", DEBUG_GS},
> - { "sync", DEBUG_SYNC},
> - { "prim", DEBUG_PRIMS },
> - { "vert", DEBUG_VERTS },
> - { "dri", DEBUG_DRI },
> - { "sf", DEBUG_SF },
> - { "stats", DEBUG_STATS },
> - { "wm", DEBUG_WM },
> - { "urb", DEBUG_URB },
> - { "vs", DEBUG_VS },
> - { "clip", DEBUG_CLIP },
> - { "aub", DEBUG_AUB },
> - { "shader_time", DEBUG_SHADER_TIME },
> - { "no16", DEBUG_NO16 },
> - { "blorp", DEBUG_BLORP },
> - { "vue", DEBUG_VUE },
> - { NULL, 0 }
> -};
> -
> -
> static void
> intelInvalidateState(struct gl_context * ctx, GLuint new_state)
> {
> @@ -517,19 +478,7 @@ intelInitContext(struct brw_context *brw,
>
> intelInitExtensions(ctx);
>
> - INTEL_DEBUG = driParseDebugString(getenv("INTEL_DEBUG"), debug_control);
> - if (INTEL_DEBUG & DEBUG_BUFMGR)
> - dri_bufmgr_set_debug(brw->bufmgr, true);
> - if ((INTEL_DEBUG & DEBUG_SHADER_TIME) && brw->gen < 7) {
> - fprintf(stderr,
> - "shader_time debugging requires gen7 (Ivybridge) or better.\n");
> - INTEL_DEBUG &= ~DEBUG_SHADER_TIME;
> - }
> - if (INTEL_DEBUG & DEBUG_PERF)
> - brw->perf_debug = true;
> -
> - if (INTEL_DEBUG & DEBUG_AUB)
> - drm_intel_bufmgr_gem_set_aub_dump(brw->bufmgr, true);
> + brw_process_intel_debug_variable(brw);
>
> intel_batchbuffer_init(brw);
>
> diff --git a/src/mesa/drivers/dri/i965/intel_context.h b/src/mesa/drivers/dri/i965/intel_context.h
> index f35dafa..9ec8c63 100644
> --- a/src/mesa/drivers/dri/i965/intel_context.h
> +++ b/src/mesa/drivers/dri/i965/intel_context.h
> @@ -44,6 +44,7 @@ extern "C" {
> #include "intel_bufmgr.h"
>
> #include "intel_screen.h"
> +#include "intel_debug.h"
> #include "intel_tex_obj.h"
> #include "i915_drm.h"
>
> @@ -160,82 +161,6 @@ static INLINE void * __memcpy(void * to, const void * from, size_t n)
>
>
> /* ================================================================
> - * Debugging:
> - */
> -extern int INTEL_DEBUG;
> -
> -#define DEBUG_TEXTURE 0x1
> -#define DEBUG_STATE 0x2
> -#define DEBUG_IOCTL 0x4
> -#define DEBUG_BLIT 0x8
> -#define DEBUG_MIPTREE 0x10
> -#define DEBUG_PERF 0x20
> -#define DEBUG_BATCH 0x80
> -#define DEBUG_PIXEL 0x100
> -#define DEBUG_BUFMGR 0x200
> -#define DEBUG_REGION 0x400
> -#define DEBUG_FBO 0x800
> -#define DEBUG_GS 0x1000
> -#define DEBUG_SYNC 0x2000
> -#define DEBUG_PRIMS 0x4000
> -#define DEBUG_VERTS 0x8000
> -#define DEBUG_DRI 0x10000
> -#define DEBUG_SF 0x20000
> -#define DEBUG_STATS 0x100000
> -#define DEBUG_WM 0x400000
> -#define DEBUG_URB 0x800000
> -#define DEBUG_VS 0x1000000
> -#define DEBUG_CLIP 0x2000000
> -#define DEBUG_AUB 0x4000000
> -#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"
> -#include <cutils/log.h>
> -#ifndef ALOGW
> -#define ALOGW LOGW
> -#endif
> -#define dbg_printf(...) ALOGW(__VA_ARGS__)
> -#else
> -#define dbg_printf(...) printf(__VA_ARGS__)
> -#endif /* HAVE_ANDROID_PLATFORM */
> -
> -#define DBG(...) do { \
> - if (unlikely(INTEL_DEBUG & FILE_DEBUG_FLAG)) \
> - dbg_printf(__VA_ARGS__); \
> -} while(0)
> -
> -#define perf_debug(...) do { \
> - static GLuint msg_id = 0; \
> - if (unlikely(INTEL_DEBUG & DEBUG_PERF)) \
> - dbg_printf(__VA_ARGS__); \
> - if (brw->perf_debug) \
> - _mesa_gl_debug(&brw->ctx, &msg_id, \
> - MESA_DEBUG_TYPE_PERFORMANCE, \
> - MESA_DEBUG_SEVERITY_MEDIUM, \
> - __VA_ARGS__); \
> -} while(0)
> -
> -#define WARN_ONCE(cond, fmt...) do { \
> - if (unlikely(cond)) { \
> - static bool _warned = false; \
> - static GLuint msg_id = 0; \
> - if (!_warned) { \
> - fprintf(stderr, "WARNING: "); \
> - fprintf(stderr, fmt); \
> - _warned = true; \
> - \
> - _mesa_gl_debug(ctx, &msg_id, \
> - MESA_DEBUG_TYPE_OTHER, \
> - MESA_DEBUG_SEVERITY_HIGH, fmt); \
> - } \
> - } \
> -} while (0)
> -
> -/* ================================================================
> * intel_context.c:
> */
>
> diff --git a/src/mesa/drivers/dri/i965/intel_debug.c b/src/mesa/drivers/dri/i965/intel_debug.c
> new file mode 100644
> index 0000000..03abdfa
> --- /dev/null
> +++ b/src/mesa/drivers/dri/i965/intel_debug.c
> @@ -0,0 +1,88 @@
> +/*
> + * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
> + * Copyright © 2006 Intel Corporation
> + *
> + * 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 (including the next
> + * paragraph) 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.
> + */
> +
> +/**
> + * \file intel_debug.c
> + *
> + * Support for the INTEL_DEBUG environment variable, along with other
> + * miscellaneous debugging code.
> + */
> +
> +#include "brw_context.h"
> +#include "intel_debug.h"
> +#include "utils.h"
> +
> +int INTEL_DEBUG = 0;
> +
> +static const struct dri_debug_control debug_control[] = {
> + { "tex", DEBUG_TEXTURE},
> + { "state", DEBUG_STATE},
> + { "ioctl", DEBUG_IOCTL},
> + { "blit", DEBUG_BLIT},
> + { "mip", DEBUG_MIPTREE},
> + { "fall", DEBUG_PERF},
> + { "perf", DEBUG_PERF},
> + { "bat", DEBUG_BATCH},
> + { "pix", DEBUG_PIXEL},
> + { "buf", DEBUG_BUFMGR},
> + { "reg", DEBUG_REGION},
> + { "fbo", DEBUG_FBO},
> + { "fs", DEBUG_WM },
> + { "gs", DEBUG_GS},
> + { "sync", DEBUG_SYNC},
> + { "prim", DEBUG_PRIMS },
> + { "vert", DEBUG_VERTS },
> + { "dri", DEBUG_DRI },
> + { "sf", DEBUG_SF },
> + { "stats", DEBUG_STATS },
> + { "wm", DEBUG_WM },
> + { "urb", DEBUG_URB },
> + { "vs", DEBUG_VS },
> + { "clip", DEBUG_CLIP },
> + { "aub", DEBUG_AUB },
> + { "shader_time", DEBUG_SHADER_TIME },
> + { "no16", DEBUG_NO16 },
> + { "blorp", DEBUG_BLORP },
> + { NULL, 0 }
> +};
> +
> +void
> +brw_process_intel_debug_variable(struct brw_context *brw)
> +{
> + INTEL_DEBUG = driParseDebugString(getenv("INTEL_DEBUG"), debug_control);
> + if (INTEL_DEBUG & DEBUG_BUFMGR)
> + dri_bufmgr_set_debug(brw->bufmgr, true);
> +
> + if ((INTEL_DEBUG & DEBUG_SHADER_TIME) && brw->gen < 7) {
> + fprintf(stderr,
> + "shader_time debugging requires gen7 (Ivybridge) or better.\n");
> + INTEL_DEBUG &= ~DEBUG_SHADER_TIME;
> + }
> +
> + if (INTEL_DEBUG & DEBUG_PERF)
> + brw->perf_debug = true;
> +
> + if (INTEL_DEBUG & DEBUG_AUB)
> + drm_intel_bufmgr_gem_set_aub_dump(brw->bufmgr, true);
> +}
> diff --git a/src/mesa/drivers/dri/i965/intel_debug.h b/src/mesa/drivers/dri/i965/intel_debug.h
> new file mode 100644
> index 0000000..486a8d6
> --- /dev/null
> +++ b/src/mesa/drivers/dri/i965/intel_debug.h
> @@ -0,0 +1,109 @@
> +/*
> + * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
> + * Copyright © 2007 Intel Corporation
> + *
> + * 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 (including the
> + * next paragraph) 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 COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS 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.
> + */
> +#pragma once
> +
> +/**
> + * \file intel_debug.h
> + *
> + * Basic INTEL_DEBUG environment variable handling. This file defines the
> + * list of debugging flags, as well as some macros for handling them.
> + */
> +
> +extern int INTEL_DEBUG;
> +
> +#define DEBUG_TEXTURE 0x1
> +#define DEBUG_STATE 0x2
> +#define DEBUG_IOCTL 0x4
> +#define DEBUG_BLIT 0x8
> +#define DEBUG_MIPTREE 0x10
> +#define DEBUG_PERF 0x20
> +#define DEBUG_BATCH 0x80
> +#define DEBUG_PIXEL 0x100
> +#define DEBUG_BUFMGR 0x200
> +#define DEBUG_REGION 0x400
> +#define DEBUG_FBO 0x800
> +#define DEBUG_GS 0x1000
> +#define DEBUG_SYNC 0x2000
> +#define DEBUG_PRIMS 0x4000
> +#define DEBUG_VERTS 0x8000
> +#define DEBUG_DRI 0x10000
> +#define DEBUG_SF 0x20000
> +#define DEBUG_STATS 0x100000
> +#define DEBUG_WM 0x400000
> +#define DEBUG_URB 0x800000
> +#define DEBUG_VS 0x1000000
> +#define DEBUG_CLIP 0x2000000
> +#define DEBUG_AUB 0x4000000
> +#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"
> +#include <cutils/log.h>
> +#ifndef ALOGW
> +#define ALOGW LOGW
> +#endif
> +#define dbg_printf(...) ALOGW(__VA_ARGS__)
> +#else
> +#define dbg_printf(...) printf(__VA_ARGS__)
> +#endif /* HAVE_ANDROID_PLATFORM */
> +
> +#define DBG(...) do { \
> + if (unlikely(INTEL_DEBUG & FILE_DEBUG_FLAG)) \
> + dbg_printf(__VA_ARGS__); \
> +} while(0)
> +
> +#define perf_debug(...) do { \
> + static GLuint msg_id = 0; \
> + if (unlikely(INTEL_DEBUG & DEBUG_PERF)) \
> + dbg_printf(__VA_ARGS__); \
> + if (brw->perf_debug) \
> + _mesa_gl_debug(&brw->ctx, &msg_id, \
> + MESA_DEBUG_TYPE_PERFORMANCE, \
> + MESA_DEBUG_SEVERITY_MEDIUM, \
> + __VA_ARGS__); \
> +} while(0)
> +
> +#define WARN_ONCE(cond, fmt...) do { \
> + if (unlikely(cond)) { \
> + static bool _warned = false; \
> + static GLuint msg_id = 0; \
> + if (!_warned) { \
> + fprintf(stderr, "WARNING: "); \
> + fprintf(stderr, fmt); \
> + _warned = true; \
> + \
> + _mesa_gl_debug(ctx, &msg_id, \
> + MESA_DEBUG_TYPE_OTHER, \
> + MESA_DEBUG_SEVERITY_HIGH, fmt); \
> + } \
> + } \
> +} while (0)
> +
> +struct brw_context;
> +
> +extern void brw_process_intel_debug_variable(struct brw_context *brw);
>
More information about the mesa-dev
mailing list