anv/ds: Associate the VkCommandBuffer some anv-only renderstage events.
This means the perfetto UI will have a non-zero/NULL handle/name in the UI on these renderstages. Unfortunately, intel/ds is outside of vulkan so unless we pull in anv headers, we can't just pass in the anv_cmd_buffer. This also means it would be much more painful to pass the cmd buffer to the rest of the events, so they'll still have unset command buffers. Still, being able to see the name of the command buffer in at least one of the events should be useful once that's glued together. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
This commit is contained in:
@@ -103,12 +103,14 @@ def define_tracepoints(args):
|
||||
|
||||
# Command buffer tracepoints, only for Anv
|
||||
begin_end_tp('cmd_buffer',
|
||||
tp_args=[Arg(type='uint8_t', var='level', c_format='%hhu'),],
|
||||
tp_args=[Arg(type='uint64_t', var='command_buffer_handle', c_format='%" PRIu64 "', perfetto_field=True),
|
||||
Arg(type='uint8_t', var='level', c_format='%hhu'),],
|
||||
end_pipelined=False)
|
||||
|
||||
# Annotations for Cmd(Begin|End)DebugUtilsLabelEXT
|
||||
begin_end_tp('cmd_buffer_annotation',
|
||||
tp_args=[Arg(type='unsigned', var='len'),
|
||||
tp_args=[Arg(type='uint64_t', var='command_buffer_handle', c_format='%" PRIu64 "', perfetto_field=True),
|
||||
Arg(type='unsigned', var='len'),
|
||||
Arg(type='str', var='str', c_format='%s', length_arg='len + 1', copy_func='strncpy'),],
|
||||
tp_struct=[Arg(type='uint8_t', name='dummy', var='0'),],
|
||||
end_pipelined=True)
|
||||
@@ -119,7 +121,8 @@ def define_tracepoints(args):
|
||||
|
||||
# Dynamic rendering tracepoints, only for Anv
|
||||
begin_end_tp('render_pass',
|
||||
tp_args=[Arg(type='uint16_t', var='width', c_format='%hu'),
|
||||
tp_args=[Arg(type='uint64_t', var='command_buffer_handle', c_format='%" PRIu64 "', perfetto_field=True),
|
||||
Arg(type='uint16_t', var='width', c_format='%hu'),
|
||||
Arg(type='uint16_t', var='height', c_format='%hu'),
|
||||
Arg(type='uint8_t', var='att_count', c_format='%hhu'),
|
||||
Arg(type='uint8_t', var='msaa', c_format='%hhu'),])
|
||||
|
||||
@@ -580,6 +580,7 @@ void anv_CmdEndDebugUtilsLabelEXT(VkCommandBuffer _commandBuffer)
|
||||
util_dynarray_top_ptr(&cmd_buffer->vk.labels, VkDebugUtilsLabelEXT);
|
||||
|
||||
trace_intel_end_cmd_buffer_annotation(&cmd_buffer->trace,
|
||||
(uintptr_t)(vk_command_buffer_to_handle(&cmd_buffer->vk)),
|
||||
strlen(label->pLabelName),
|
||||
label->pLabelName);
|
||||
}
|
||||
|
||||
@@ -3436,7 +3436,9 @@ end_command_buffer(struct anv_cmd_buffer *cmd_buffer)
|
||||
|
||||
if (anv_cmd_buffer_is_video_queue(cmd_buffer) ||
|
||||
anv_cmd_buffer_is_blitter_queue(cmd_buffer)) {
|
||||
trace_intel_end_cmd_buffer(&cmd_buffer->trace, cmd_buffer->vk.level);
|
||||
trace_intel_end_cmd_buffer(&cmd_buffer->trace,
|
||||
(uintptr_t)(vk_command_buffer_to_handle(&cmd_buffer->vk)),
|
||||
cmd_buffer->vk.level);
|
||||
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
|
||||
anv_cmd_buffer_end_batch_buffer(cmd_buffer);
|
||||
return VK_SUCCESS;
|
||||
@@ -3483,7 +3485,9 @@ end_command_buffer(struct anv_cmd_buffer *cmd_buffer)
|
||||
genX(cmd_buffer_set_protected_memory)(cmd_buffer, false);
|
||||
#endif
|
||||
|
||||
trace_intel_end_cmd_buffer(&cmd_buffer->trace, cmd_buffer->vk.level);
|
||||
trace_intel_end_cmd_buffer(&cmd_buffer->trace,
|
||||
(uintptr_t)(vk_command_buffer_to_handle(&cmd_buffer->vk)),
|
||||
cmd_buffer->vk.level);
|
||||
|
||||
anv_cmd_buffer_end_batch_buffer(cmd_buffer);
|
||||
|
||||
@@ -6044,6 +6048,7 @@ void genX(CmdEndRendering)(
|
||||
}
|
||||
|
||||
trace_intel_end_render_pass(&cmd_buffer->trace,
|
||||
(uintptr_t)(vk_command_buffer_to_handle(&cmd_buffer->vk)),
|
||||
gfx->render_area.extent.width,
|
||||
gfx->render_area.extent.height,
|
||||
gfx->color_att_count,
|
||||
|
||||
@@ -1512,7 +1512,9 @@ genX(EndCommandBuffer)(
|
||||
|
||||
emit_isp_disable(cmd_buffer);
|
||||
|
||||
trace_intel_end_cmd_buffer(&cmd_buffer->trace, cmd_buffer->vk.level);
|
||||
trace_intel_end_cmd_buffer(&cmd_buffer->trace,
|
||||
(uintptr_t)(vk_command_buffer_to_handle(&cmd_buffer->vk)),
|
||||
cmd_buffer->vk.level);
|
||||
|
||||
anv_cmd_buffer_end_batch_buffer(cmd_buffer);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user