From d22edcdfce86cbfd60bcb75c323e74168bbc18b6 Mon Sep 17 00:00:00 2001 From: Carl Zhang Date: Thu, 18 Sep 2025 17:26:42 +0800 Subject: [PATCH] trace: add trace for vaDeriveImage Signed-off-by: Carl Zhang --- va/va.c | 1 + va/va_trace.c | 37 +++++++++++++++++++++++++++++++++++++ va/va_trace.h | 8 ++++++++ 3 files changed, 46 insertions(+) diff --git a/va/va.c b/va/va.c index 6d6ed1810..850c746f4 100644 --- a/va/va.c +++ b/va/va.c @@ -1938,6 +1938,7 @@ VAStatus vaDeriveImage( ctx = CTX(dpy); va_status = ctx->vtable->vaDeriveImage(ctx, surface, image); + VA_TRACE_LOG(va_TraceDeriveImage, dpy, surface, image); VA_TRACE_RET(dpy, va_status); return va_status; } diff --git a/va/va_trace.c b/va/va_trace.c index ad005a294..ed64ac562 100644 --- a/va/va_trace.c +++ b/va/va_trace.c @@ -7303,3 +7303,40 @@ void va_TraceExportSurfaceHandle( DPY2TRACE_VIRCTX_EXIT(pva_trace); } + +void va_TraceDeriveImage(VADisplay dpy, VASurfaceID surface, VAImage *image) +{ + DPY2TRACE_VIRCTX(dpy); + + TRACE_FUNCNAME(idx); + + va_TraceMsg(trace_ctx, "surfaceID = %d, imageID = %d\n", surface, image->image_id); + va_TraceMsg(trace_ctx, "format:\n"); + va_TraceMsg(trace_ctx, "\tfourcc = 0x%08x\n", image->format.fourcc); + if (image->format.byte_order == VA_LSB_FIRST) + va_TraceMsg(trace_ctx, "byte_order = VA_LSB_FIRST\n"); + else if (image->format.byte_order == VA_MSB_FIRST) + va_TraceMsg(trace_ctx, "byte_order = VA_MSB_FIRST\n"); + else + va_TraceMsg(trace_ctx, "byte_order = %d\n", image->format.byte_order); + va_TraceMsg(trace_ctx, "\tformat.bits_per_pixel = %d\n", image->format.bits_per_pixel); + va_TraceMsg(trace_ctx, "\tformat.depth= %d\n", image->format.depth); + va_TraceMsg(trace_ctx, "\tformat.red_mask = 0x%08x\n", image->format.red_mask); + va_TraceMsg(trace_ctx, "\tformat.greeen_mask = 0x%08x\n", image->format.green_mask); + va_TraceMsg(trace_ctx, "\tformat.blue_mask = 0x%08x\n", image->format.blue_mask); + va_TraceMsg(trace_ctx, "\tformat.alpha_mask = 0x%08x\n", image->format.alpha_mask); + + va_TraceMsg(trace_ctx, "bufferID = %d\n", image->buf); + va_TraceMsg(trace_ctx, "width = %d\n", image->width); + va_TraceMsg(trace_ctx, "height = %d\n", image->height); + va_TraceMsg(trace_ctx, "data_size = %d\n", image->data_size); + va_TraceMsg(trace_ctx, "num_planes = %d\n", image->num_planes); + va_TraceMsg(trace_ctx, "pitches = %d, %d, %d\n", image->pitches[0], image->pitches[1], image->pitches[2]); + va_TraceMsg(trace_ctx, "offsets = %d, %d, %d\n", image->offsets[0], image->offsets[1], image->offsets[2]); + + va_TraceMsg(trace_ctx, "num_palette_entries = %d\n", image->num_palette_entries); + va_TraceMsg(trace_ctx, "entry_bytes= %d\n", image->entry_bytes); + va_TraceMsg(trace_ctx, "component_order = %c%c%c%c\n", image->component_order[0], image->component_order[1], image->component_order[2], image->component_order[3]); + + DPY2TRACE_VIRCTX_EXIT(pva_trace); +} diff --git a/va/va_trace.h b/va/va_trace.h index 05637afac..4e56590c3 100644 --- a/va/va_trace.h +++ b/va/va_trace.h @@ -506,6 +506,14 @@ void va_TraceExportSurfaceHandle( uint32_t flags, void *descriptor); +/** \brief va_TraceDeriveImage + * trace derive image */ +DLL_HIDDEN +void va_TraceDeriveImage( + VADisplay dpy, + VASurfaceID surface, + VAImage *image); + #ifdef __cplusplus } #endif