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....@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@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to