From b059cdad40143dc1a46581a3a59aeef959013a4b Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Tue, 31 May 2022 12:54:27 +0300 Subject: [PATCH] turnip: Add TU_GPU_TRACEPOINT envvar to toggle tracepoints All tracepoints are enabled by default. Example: TU_GPU_TRACEPOINT=-sysmem_clear Signed-off-by: Danylo Piliaiev Part-of: --- src/freedreno/vulkan/tu_device.c | 3 +++ src/freedreno/vulkan/tu_tracepoints.py | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c index 389ca3b7330..eb580fed31d 100644 --- a/src/freedreno/vulkan/tu_device.c +++ b/src/freedreno/vulkan/tu_device.c @@ -27,6 +27,7 @@ #include "tu_private.h" #include "tu_cs.h" +#include "tu_tracepoints.h" #include "git_sha1.h" #include @@ -1970,6 +1971,8 @@ tu_CreateDevice(VkPhysicalDevice physicalDevice, physical_device->info->a6xx.has_z24uint_s8uint && !border_color_without_format; + tu_gpu_tracepoint_config_variable(); + device->submit_count = 0; u_trace_context_init(&device->trace_context, device, tu_trace_create_ts_buffer, diff --git a/src/freedreno/vulkan/tu_tracepoints.py b/src/freedreno/vulkan/tu_tracepoints.py index 106581a39a6..ba65a6ae645 100644 --- a/src/freedreno/vulkan/tu_tracepoints.py +++ b/src/freedreno/vulkan/tu_tracepoints.py @@ -44,6 +44,10 @@ from u_trace import TracepointArgStruct as ArgStruct from u_trace import utrace_generate from u_trace import utrace_generate_perfetto_utils +# List of the default tracepoints enabled. By default tracepoints are enabled, +# set tp_default_enabled=False to disable them by default. +tu_default_tps = [] + # # Tracepoint definitions: # @@ -55,10 +59,16 @@ Header('freedreno/vulkan/tu_private.h', scope=HeaderScope.SOURCE) ForwardDecl('struct tu_device') -def begin_end_tp(name, args=[], tp_struct=None, tp_print=None): +def begin_end_tp(name, args=[], tp_struct=None, tp_print=None, + tp_default_enabled=True): + global tu_default_tps + if tp_default_enabled: + tu_default_tps.append(name) Tracepoint('start_{0}'.format(name), + toggle_name=name, tp_perfetto='tu_start_{0}'.format(name)) Tracepoint('end_{0}'.format(name), + toggle_name=name, args=args, tp_struct=tp_struct, tp_perfetto='tu_end_{0}'.format(name), @@ -120,5 +130,9 @@ begin_end_tp('compute', Arg(type='uint16_t', var='num_groups_y', c_format='%u'), Arg(type='uint16_t', var='num_groups_z', c_format='%u')]) -utrace_generate(cpath=args.utrace_src, hpath=args.utrace_hdr, ctx_param='struct tu_device *dev') +utrace_generate(cpath=args.utrace_src, + hpath=args.utrace_hdr, + ctx_param='struct tu_device *dev', + trace_toggle_name='tu_gpu_tracepoint', + trace_toggle_defaults=tu_default_tps) utrace_generate_perfetto_utils(hpath=args.perfetto_hdr)