mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-24 00:40:36 +02:00
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:
parent
f873b15a48
commit
55d788f434
4 changed files with 17 additions and 6 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue