mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
tu: Don't enable secondary command buffer tracepoint by default
Secondary command buffers don't add much information to the traces, but add more noise and overhead. In order to disable their tracepoints by default, a separate "secondary_cmd_buffer" tracepoint is created. Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34588>
This commit is contained in:
parent
9dfd4a091c
commit
99b23235a6
3 changed files with 17 additions and 8 deletions
|
|
@ -3173,11 +3173,10 @@ tu_BeginCommandBuffer(VkCommandBuffer commandBuffer,
|
|||
pBeginInfo->flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT;
|
||||
|
||||
if (u_trace_enabled(&cmd_buffer->device->trace_context)) {
|
||||
trace_start_cmd_buffer(
|
||||
trace_start_secondary_cmd_buffer(
|
||||
&cmd_buffer->trace,
|
||||
pass_continue ? &cmd_buffer->draw_cs : &cmd_buffer->cs,
|
||||
cmd_buffer, tu_env_debug_as_string(),
|
||||
ir3_shader_debug_as_string());
|
||||
cmd_buffer);
|
||||
}
|
||||
|
||||
assert(pBeginInfo->pInheritanceInfo);
|
||||
|
|
@ -4065,16 +4064,20 @@ tu_EndCommandBuffer(VkCommandBuffer commandBuffer)
|
|||
if (cmd_buffer->state.pass) {
|
||||
tu_clean_all_pending(&cmd_buffer->state.renderpass_cache);
|
||||
tu_emit_cache_flush_renderpass<CHIP>(cmd_buffer);
|
||||
|
||||
trace_end_cmd_buffer(&cmd_buffer->trace, &cmd_buffer->draw_cs);
|
||||
} else {
|
||||
tu_clean_all_pending(&cmd_buffer->state.cache);
|
||||
cmd_buffer->state.cache.flush_bits |=
|
||||
TU_CMD_FLAG_CCU_CLEAN_COLOR |
|
||||
TU_CMD_FLAG_CCU_CLEAN_DEPTH;
|
||||
tu_emit_cache_flush<CHIP>(cmd_buffer);
|
||||
}
|
||||
|
||||
if (cmd_buffer->vk.level == VK_COMMAND_BUFFER_LEVEL_PRIMARY) {
|
||||
trace_end_cmd_buffer(&cmd_buffer->trace, &cmd_buffer->cs);
|
||||
} else {
|
||||
trace_end_secondary_cmd_buffer(
|
||||
&cmd_buffer->trace,
|
||||
cmd_buffer->state.pass ? &cmd_buffer->draw_cs : &cmd_buffer->cs);
|
||||
}
|
||||
|
||||
tu_cs_end(&cmd_buffer->cs);
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ enum tu_stage_id {
|
|||
CMD_BUFFER_STAGE_ID,
|
||||
CMD_BUFFER_ANNOTATION_STAGE_ID,
|
||||
RENDER_PASS_STAGE_ID,
|
||||
SECONDARY_CMD_BUFFER_STAGE_ID,
|
||||
CMD_BUFFER_ANNOTATION_RENDER_PASS_STAGE_ID,
|
||||
BINNING_STAGE_ID,
|
||||
GMEM_STAGE_ID,
|
||||
|
|
@ -75,6 +76,7 @@ static const struct {
|
|||
[CMD_BUFFER_STAGE_ID] = { "Command Buffer" },
|
||||
[CMD_BUFFER_ANNOTATION_STAGE_ID] = { "Annotation", "Command Buffer Annotation" },
|
||||
[RENDER_PASS_STAGE_ID] = { "Render Pass" },
|
||||
[SECONDARY_CMD_BUFFER_STAGE_ID] = { "Secondary Command Buffer" },
|
||||
[CMD_BUFFER_ANNOTATION_RENDER_PASS_STAGE_ID] = { "Annotation", "Render Pass Command Buffer Annotation" },
|
||||
[BINNING_STAGE_ID] = { "Binning", "Perform Visibility pass and determine target bins" },
|
||||
[GMEM_STAGE_ID] = { "GMEM", "Rendering to GMEM" },
|
||||
|
|
@ -511,6 +513,7 @@ tu_perfetto_end_submit(struct tu_queue *queue,
|
|||
}
|
||||
|
||||
CREATE_EVENT_CALLBACK(cmd_buffer, CMD_BUFFER_STAGE_ID)
|
||||
CREATE_EVENT_CALLBACK(secondary_cmd_buffer, SECONDARY_CMD_BUFFER_STAGE_ID)
|
||||
CREATE_EVENT_CALLBACK(render_pass, RENDER_PASS_STAGE_ID)
|
||||
CREATE_EVENT_CALLBACK(binning_ib, BINNING_STAGE_ID)
|
||||
CREATE_EVENT_CALLBACK(draw_ib_gmem, GMEM_STAGE_ID)
|
||||
|
|
|
|||
|
|
@ -73,9 +73,12 @@ 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='VkCommandBufferLevel', name='level', var='cmd->vk.level', c_format='%s', to_prim_type='vk_CommandBufferLevel_to_str({})'),
|
||||
Arg(type='uint8_t', name='render_pass_continue', var='!!(cmd->usage_flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT)', c_format='%u')])
|
||||
Arg(type='const char *', name='engineName', var='cmd->device->instance->vk.app_info.engine_name', c_format='%s')])
|
||||
|
||||
begin_end_tp('secondary_cmd_buffer', tp_default_enabled=False,
|
||||
args=[ArgStruct(type='const struct tu_cmd_buffer *', var='cmd')],
|
||||
tp_struct=[Arg(type='uint8_t', name='render_pass_continue', var='!!(cmd->usage_flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT)', c_format='%u')])
|
||||
|
||||
|
||||
begin_end_tp('render_pass',
|
||||
args=[ArgStruct(type='const struct tu_framebuffer *', var='fb'),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue