[Mesa-dev] [PATCH 2/6] intel: Ask libdrm to dump an AUB file if INTEL_DEBUG=aub.

Yuanhan Liu yuanhan.liu at linux.intel.com
Sun Mar 18 18:38:28 PDT 2012


On Fri, Mar 16, 2012 at 04:26:42PM -0700, Eric Anholt wrote:
> It also asks for BMPs in the aub file at SwapBuffers time.
> ---
>  src/mesa/drivers/dri/intel/intel_context.c |    4 +++
>  src/mesa/drivers/dri/intel/intel_context.h |    1 +
>  src/mesa/drivers/dri/intel/intel_screen.c  |   32 ++++++++++++++++++++++++++++
>  3 files changed, 37 insertions(+), 0 deletions(-)

Reviewed-by: Yuanhan Liu <yuanhan.liu at linux.intel.com>

> 
> diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
> index 7b2bdad..ff721fb 100644
> --- a/src/mesa/drivers/dri/intel/intel_context.c
> +++ b/src/mesa/drivers/dri/intel/intel_context.c
> @@ -477,6 +477,7 @@ static const struct dri_debug_control debug_control[] = {
>     { "urb",   DEBUG_URB },
>     { "vs",    DEBUG_VS },
>     { "clip",  DEBUG_CLIP },
> +   { "aub",   DEBUG_AUB },
>     { NULL,    0 }
>  };
>  
> @@ -754,6 +755,9 @@ intelInitContext(struct intel_context *intel,
>     if (INTEL_DEBUG & DEBUG_BUFMGR)
>        dri_bufmgr_set_debug(intel->bufmgr, true);
>  
> +   if (INTEL_DEBUG & DEBUG_AUB)
> +      drm_intel_bufmgr_gem_set_aub_dump(intel->bufmgr, true);
> +
>     intel_batchbuffer_init(intel);
>  
>     intel_fbo_init(intel);
> diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h
> index ef024b1..7b42009 100644
> --- a/src/mesa/drivers/dri/intel/intel_context.h
> +++ b/src/mesa/drivers/dri/intel/intel_context.h
> @@ -472,6 +472,7 @@ extern int INTEL_DEBUG;
>  #define DEBUG_URB       0x800000
>  #define DEBUG_VS        0x1000000
>  #define DEBUG_CLIP      0x2000000
> +#define DEBUG_AUB       0x4000000
>  
>  #define DBG(...) do {						\
>  	if (unlikely(INTEL_DEBUG & FILE_DEBUG_FLAG))		\
> diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
> index 48762d0..7939c4d 100644
> --- a/src/mesa/drivers/dri/intel/intel_screen.c
> +++ b/src/mesa/drivers/dri/intel/intel_screen.c
> @@ -125,6 +125,38 @@ intelDRI2Flush(__DRIdrawable *drawable)
>  
>     if (intel->batch.used)
>        intel_batchbuffer_flush(intel);
> +
> +   if (INTEL_DEBUG & DEBUG_AUB) {
> +      struct gl_framebuffer *fb = ctx->DrawBuffer;
> +
> +      for (int i = 0; i < fb->_NumColorDrawBuffers; i++) {
> +	 struct intel_renderbuffer *irb =
> +	    intel_renderbuffer(fb->_ColorDrawBuffers[i]);
> +
> +	 if (irb && irb->mt) {
> +	    enum aub_dump_bmp_format format;
> +
> +	    switch (irb->Base.Base.Format) {
> +	    case MESA_FORMAT_ARGB8888:
> +	    case MESA_FORMAT_XRGB8888:
> +	       format = AUB_DUMP_BMP_FORMAT_ARGB_8888;
> +	       break;
> +	    default:
> +	       continue;
> +	    }
> +
> +	    drm_intel_gem_bo_aub_dump_bmp(irb->mt->region->bo,
> +					  irb->draw_x,
> +					  irb->draw_y,
> +					  irb->Base.Base.Width,
> +					  irb->Base.Base.Height,
> +					  format,
> +					  irb->mt->region->pitch *
> +					  irb->mt->region->cpp,
> +					  0);
> +	 }
> +      }
> +   }
>  }
>  
>  static const struct __DRI2flushExtensionRec intelFlushExtension = {
> -- 
> 1.7.9.1
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list