[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