tu: Add total renderpasses,dispatches to cmdbuf tracepoint
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Makes much easier to identify command buffers when tracing
only them, e.g. to see overall performance.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34588>
This commit is contained in:
Danylo Piliaiev 2025-04-21 14:02:55 +02:00 committed by Marge Bot
parent 99b23235a6
commit 97dc196d42
3 changed files with 19 additions and 2 deletions

View file

@ -4073,7 +4073,7 @@ tu_EndCommandBuffer(VkCommandBuffer commandBuffer)
}
if (cmd_buffer->vk.level == VK_COMMAND_BUFFER_LEVEL_PRIMARY) {
trace_end_cmd_buffer(&cmd_buffer->trace, &cmd_buffer->cs);
trace_end_cmd_buffer(&cmd_buffer->trace, &cmd_buffer->cs, cmd_buffer);
} else {
trace_end_secondary_cmd_buffer(
&cmd_buffer->trace,
@ -5075,6 +5075,9 @@ tu_CmdExecuteCommands(VkCommandBuffer commandBuffer,
}
}
}
cmd->state.total_renderpasses += secondary->state.total_renderpasses;
cmd->state.total_dispatches += secondary->state.total_dispatches;
}
cmd->state.index_size = secondary->state.index_size; /* for restart index update */
@ -7631,6 +7634,8 @@ tu_dispatch(struct tu_cmd_buffer *cmd,
if (emit_instrlen_workaround) {
tu_emit_event_write<CHIP>(cmd, cs, FD_LABEL);
}
cmd->state.total_dispatches++;
}
template <chip CHIP>
@ -7738,6 +7743,8 @@ tu_CmdEndRenderPass2(VkCommandBuffer commandBuffer,
vk_free(&cmd_buffer->vk.pool->alloc, cmd_buffer->state.attachments);
tu_reset_render_pass(cmd_buffer);
cmd_buffer->state.total_renderpasses++;
}
VKAPI_ATTR void VKAPI_CALL
@ -7810,6 +7817,10 @@ tu_CmdEndRendering2EXT(VkCommandBuffer commandBuffer,
unreachable("suspending render pass not followed by resuming pass");
}
}
if (!cmd_buffer->state.suspending) {
cmd_buffer->state.total_renderpasses++;
}
}
void

View file

@ -557,6 +557,9 @@ struct tu_cmd_state
struct tu_tess_params tess_params;
uint64_t descriptor_buffer_iova[MAX_SETS];
uint32_t total_renderpasses;
uint32_t total_dispatches;
};
struct tu_cmd_buffer

View file

@ -73,7 +73,10 @@ begin_end_tp('cmd_buffer',
Arg(type='str', var='TUdebugFlags', c_format='%s', length_arg='96', copy_func='strncpy'),
Arg(type='str', var='IR3debugFlags', c_format='%s', length_arg='96', copy_func='strncpy')],
tp_struct=[Arg(type='const char *', name='appName', var='cmd->device->instance->vk.app_info.app_name', c_format='%s'),
Arg(type='const char *', name='engineName', var='cmd->device->instance->vk.app_info.engine_name', c_format='%s')])
Arg(type='const char *', name='engineName', var='cmd->device->instance->vk.app_info.engine_name', c_format='%s')],
end_args=[ArgStruct(type='const struct tu_cmd_buffer *', var='cmd')],
end_tp_struct=[Arg(type='uint32_t', name='renderpasses', var='cmd->state.total_renderpasses', c_format='%u'),
Arg(type='uint32_t', name='dispatches', var='cmd->state.total_dispatches', c_format='%u')])
begin_end_tp('secondary_cmd_buffer', tp_default_enabled=False,
args=[ArgStruct(type='const struct tu_cmd_buffer *', var='cmd')],