From e86f3c7abbaf5d8c21c7c8e43f80c63a91f55151 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Tue, 13 Jun 2023 11:11:27 +0300 Subject: [PATCH] intel/ds: add query count in query tracepoints Signed-off-by: Lionel Landwerlin Reviewed-by: Rohan Garg Part-of: --- src/intel/ds/intel_driver_ds.cc | 3 ++- src/intel/ds/intel_tracepoints.py | 11 ++++++++--- src/intel/vulkan/genX_query.c | 6 +++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/intel/ds/intel_driver_ds.cc b/src/intel/ds/intel_driver_ds.cc index b6b49b82a45..d2529986a8e 100644 --- a/src/intel/ds/intel_driver_ds.cc +++ b/src/intel/ds/intel_driver_ds.cc @@ -394,7 +394,8 @@ CREATE_DUAL_EVENT_CALLBACK(generate_draws, INTEL_DS_QUEUE_STAGE_GENERATE_DRAWS) CREATE_DUAL_EVENT_CALLBACK(trace_copy, INTEL_DS_QUEUE_STAGE_BLORP) CREATE_DUAL_EVENT_CALLBACK(query_clear_blorp, INTEL_DS_QUEUE_STAGE_BLORP) CREATE_DUAL_EVENT_CALLBACK(query_clear_cs, INTEL_DS_QUEUE_STAGE_CMD_BUFFER) -CREATE_DUAL_EVENT_CALLBACK(query_copy, INTEL_DS_QUEUE_STAGE_CMD_BUFFER) +CREATE_DUAL_EVENT_CALLBACK(query_copy_cs, INTEL_DS_QUEUE_STAGE_CMD_BUFFER) +CREATE_DUAL_EVENT_CALLBACK(query_copy_shader, INTEL_DS_QUEUE_STAGE_BLORP) void intel_ds_begin_cmd_buffer_annotation(struct intel_ds_device *device, diff --git a/src/intel/ds/intel_tracepoints.py b/src/intel/ds/intel_tracepoints.py index a7079930116..c16d6f94951 100644 --- a/src/intel/ds/intel_tracepoints.py +++ b/src/intel/ds/intel_tracepoints.py @@ -122,11 +122,16 @@ def define_tracepoints(args): begin_end_tp('generate_draws') # vkCmdResetQuery, only for Anv - begin_end_tp('query_clear_blorp') - begin_end_tp('query_clear_cs', end_pipelined=False) + begin_end_tp('query_clear_blorp', + tp_args=[Arg(type='uint32_t', var='count', c_format='%u')]) + begin_end_tp('query_clear_cs', + tp_args=[Arg(type='uint32_t', var='count', c_format='%u')], + end_pipelined=False) # vkCmdCopyQueryResults, only for Anv - begin_end_tp('query_copy', end_pipelined=False) + begin_end_tp('query_copy', + tp_args=[Arg(type='uint32_t', var='count', c_format='%u')], + end_pipelined=False) # Various draws/dispatch, Anv & Iris begin_end_tp('draw', diff --git a/src/intel/vulkan/genX_query.c b/src/intel/vulkan/genX_query.c index 7f1c0464645..ef7f7c9d582 100644 --- a/src/intel/vulkan/genX_query.c +++ b/src/intel/vulkan/genX_query.c @@ -798,7 +798,7 @@ void genX(CmdResetQueryPool)( cmd_buffer->state.pending_query_bits = ANV_QUERY_RENDER_TARGET_WRITES_PENDING_BITS(cmd_buffer->device->info); - trace_intel_end_query_clear_blorp(&cmd_buffer->trace); + trace_intel_end_query_clear_blorp(&cmd_buffer->trace, queryCount); return; } @@ -878,7 +878,7 @@ void genX(CmdResetQueryPool)( unreachable("Unsupported query type"); } - trace_intel_end_query_clear_cs(&cmd_buffer->trace); + trace_intel_end_query_clear_cs(&cmd_buffer->trace, queryCount); } void genX(ResetQueryPool)( @@ -1649,7 +1649,7 @@ void genX(CmdCopyQueryPoolResults)( dest_addr = anv_address_add(dest_addr, destStride); } - trace_intel_end_query_copy(&cmd_buffer->trace); + trace_intel_end_query_copy(&cmd_buffer->trace, queryCount); } #if GFX_VERx10 >= 125 && ANV_SUPPORT_RT