[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