intel/ds: add trace of buffer markers

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14924>
This commit is contained in:
Lionel Landwerlin 2023-11-21 15:26:05 +02:00 committed by Marge Bot
parent c8e122a738
commit 7dff232c09
4 changed files with 10 additions and 1 deletions

View file

@ -427,6 +427,7 @@ CREATE_DUAL_EVENT_CALLBACK(query_clear_blorp, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS)
CREATE_DUAL_EVENT_CALLBACK(query_clear_cs, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS)
CREATE_DUAL_EVENT_CALLBACK(query_copy_cs, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS)
CREATE_DUAL_EVENT_CALLBACK(query_copy_shader, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS)
CREATE_DUAL_EVENT_CALLBACK(write_buffer_marker, INTEL_DS_QUEUE_STAGE_CMD_BUFFER)
CREATE_DUAL_EVENT_CALLBACK(rays, INTEL_DS_QUEUE_STAGE_RT)
CREATE_DUAL_EVENT_CALLBACK(as_build, INTEL_DS_QUEUE_STAGE_AS)

View file

@ -115,7 +115,7 @@ struct intel_ds_device {
uint64_t event_id;
/* Tracepoint name perfetto identifiers for each of the events. */
uint64_t tracepoint_iids[64];
uint64_t tracepoint_iids[96];
/* Protects submissions of u_trace data to trace_context */
simple_mtx_t trace_context_mutex;

View file

@ -118,6 +118,10 @@ def define_tracepoints(args):
Arg(type='enum isl_format', name='src_fmt', var='src_fmt', c_format='%s', to_prim_type='isl_format_get_short_name({})'),
])
# vkCmdWriteBufferMarker*, only for Anv
begin_end_tp('write_buffer_marker',
end_pipelined=False)
# Indirect draw generation, only for Anv
begin_end_tp('generate_draws')

View file

@ -8566,6 +8566,8 @@ genX(CmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer,
#endif
ANV_PIPE_END_OF_PIPE_SYNC_BIT;
trace_intel_begin_write_buffer_marker(&cmd_buffer->trace);
anv_add_pending_pipe_bits(cmd_buffer, bits, "write buffer marker");
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
@ -8581,4 +8583,6 @@ genX(CmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer,
*/
mi_store(&b, mi_mem32(anv_address_add(buffer->address, dstOffset)),
mi_imm(marker));
trace_intel_end_write_buffer_marker(&cmd_buffer->trace);
}