From ab9dd18b68d3c01800667112e4bf63400e1bf9bb Mon Sep 17 00:00:00 2001 From: Amber Date: Mon, 16 Jan 2023 13:29:05 +0100 Subject: [PATCH] util/u_trace: pass utrace context to marker functions. This is needed later by freedreno in order to get more device information in trace functions. Signed-off-by: amber@igalia.com Part-of: --- src/freedreno/vulkan/tu_cs.c | 7 +++++-- src/freedreno/vulkan/tu_cs.h | 11 +++++++---- src/util/perf/u_trace.py | 8 ++++---- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/freedreno/vulkan/tu_cs.c b/src/freedreno/vulkan/tu_cs.c index e38ba96afa3..cf9f92e13cf 100644 --- a/src/freedreno/vulkan/tu_cs.c +++ b/src/freedreno/vulkan/tu_cs.c @@ -493,7 +493,10 @@ tu_cs_emit_debug_msg(struct tu_cs *cs, const char *fmt, ...) } void -tu_cs_trace_start(void *cs, const char *fmt, ...) +tu_cs_trace_start(struct u_trace_context *utctx, + void *cs, + const char *fmt, + ...) { va_list args; va_start(args, fmt); @@ -502,7 +505,7 @@ tu_cs_trace_start(void *cs, const char *fmt, ...) } void -tu_cs_trace_end(void *cs, const char *fmt, ...) +tu_cs_trace_end(struct u_trace_context *utctx, void *cs, const char *fmt, ...) { va_list args; va_start(args, fmt); diff --git a/src/freedreno/vulkan/tu_cs.h b/src/freedreno/vulkan/tu_cs.h index fb78f167223..23388856e91 100644 --- a/src/freedreno/vulkan/tu_cs.h +++ b/src/freedreno/vulkan/tu_cs.h @@ -403,11 +403,14 @@ tu_cs_emit_debug_msg(struct tu_cs *cs, const char *fmt, ...); typedef struct tu_cs *tu_debug_scope; -__attribute__((format(printf, 2, 3))) void -tu_cs_trace_start(void *cs, const char *fmt, ...); +__attribute__((format(printf, 3, 4))) void +tu_cs_trace_start(struct u_trace_context *utctx, + void *cs, + const char *fmt, + ...); -__attribute__((format(printf, 2, 3))) void -tu_cs_trace_end(void *cs, const char *fmt, ...); +__attribute__((format(printf, 3, 4))) void +tu_cs_trace_end(struct u_trace_context *utctx, void *cs, const char *fmt, ...); /* Helpers for bracketing a large sequence of commands of unknown size inside * a CP_COND_REG_EXEC packet. diff --git a/src/util/perf/u_trace.py b/src/util/perf/u_trace.py index 3ca639752be..066a1a913fc 100644 --- a/src/util/perf/u_trace.py +++ b/src/util/perf/u_trace.py @@ -420,10 +420,10 @@ static void __print_json_${trace_name}(FILE *out, const void *arg) { % endif % if trace.tp_markers is not None: -__attribute__((format(printf, 2, 3))) void ${trace.tp_markers}(void *, const char *, ...); +__attribute__((format(printf, 3, 4))) void ${trace.tp_markers}(struct u_trace_context *utctx, void *, const char *, ...); -static void __emit_label_${trace_name}(void *cs, struct trace_${trace_name} *entry) { - ${trace.tp_markers}(cs, "${trace_name}(" +static void __emit_label_${trace_name}(struct u_trace_context *utctx, void *cs, struct trace_${trace_name} *entry) { + ${trace.tp_markers}(utctx, cs, "${trace_name}(" % for idx,arg in enumerate(trace.tp_struct): "${"," if idx != 0 else ""}${arg.name}=${arg.c_format}" % endfor @@ -486,7 +486,7 @@ void __trace_${trace_name}( % endfor % if trace.tp_markers is not None: if (enabled_traces & U_TRACE_TYPE_MARKERS) - __emit_label_${trace_name}(cs, __entry); + __emit_label_${trace_name}(ut->utctx, cs, __entry); % endif }