diff --git a/src/freedreno/vulkan/tu_cmd_buffer.cc b/src/freedreno/vulkan/tu_cmd_buffer.cc index 17b60c99c65..90a94ffbbfc 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.cc +++ b/src/freedreno/vulkan/tu_cmd_buffer.cc @@ -6650,6 +6650,8 @@ tu_emit_subpass_custom_resolve(struct tu_cmd_buffer *cmd) if (!subpass->custom_resolve) return; + trace_start_custom_resolve(&cmd->rp_trace, cs, cmd); + /* Since a7xx, buffer location can be controlled per-buffer. We also have * to update the steering register so that generic clears use sysmem. */ @@ -6712,6 +6714,8 @@ tu_emit_custom_resolve_end(struct tu_cmd_buffer *cmd) tu_emit_event_write(cmd, cs, FD_CCU_CLEAN_COLOR); if (subpass->depth_stencil_attachment.attachment != VK_ATTACHMENT_UNUSED) tu_emit_event_write(cmd, cs, FD_CCU_CLEAN_DEPTH); + + trace_end_custom_resolve(&cmd->rp_trace, cs); } /* emit loads, clears, and mrt/zs/msaa/ubwc state for the subpass that is diff --git a/src/freedreno/vulkan/tu_perfetto.cc b/src/freedreno/vulkan/tu_perfetto.cc index 44acb01146a..7383d70a7e8 100644 --- a/src/freedreno/vulkan/tu_perfetto.cc +++ b/src/freedreno/vulkan/tu_perfetto.cc @@ -82,6 +82,7 @@ enum tu_stage_id { GMEM_LOAD_STAGE_ID, GMEM_STORE_STAGE_ID, SYSMEM_RESOLVE_STAGE_ID, + CUSTOM_RESOLVE_STAGE_ID, // TODO add the rest from fd_stage_id }; @@ -117,6 +118,7 @@ static const struct { [GMEM_LOAD_STAGE_ID] = { "GMEM Load", "Per tile system memory to GMEM load" }, [GMEM_STORE_STAGE_ID] = { "GMEM Store", "Per tile GMEM to system memory store" }, [SYSMEM_RESOLVE_STAGE_ID] = { "SysMem Resolve", "System memory MSAA resolve" }, + [CUSTOM_RESOLVE_STAGE_ID] = { "Custom Resolve", "Custom resolve via shader" }, // TODO add the rest }; @@ -605,6 +607,7 @@ CREATE_EVENT_CALLBACK(sysmem_clear_all, CLEAR_SYSMEM_STAGE_ID) CREATE_EVENT_CALLBACK(gmem_load, GMEM_LOAD_STAGE_ID) CREATE_EVENT_CALLBACK(gmem_store, GMEM_STORE_STAGE_ID) CREATE_EVENT_CALLBACK(sysmem_resolve, SYSMEM_RESOLVE_STAGE_ID) +CREATE_EVENT_CALLBACK(custom_resolve, CUSTOM_RESOLVE_STAGE_ID) void tu_perfetto_start_cmd_buffer_annotation( diff --git a/src/freedreno/vulkan/tu_tracepoints.py b/src/freedreno/vulkan/tu_tracepoints.py index 6fac1b65def..af5668c3248 100644 --- a/src/freedreno/vulkan/tu_tracepoints.py +++ b/src/freedreno/vulkan/tu_tracepoints.py @@ -171,6 +171,8 @@ begin_end_tp('gmem_store', begin_end_tp('sysmem_resolve', args=[Arg(type='enum VkFormat', var='format', c_format='%s', to_prim_type='vk_format_description({})->short_name')]) +begin_end_tp('custom_resolve') + begin_end_tp('blit', # TODO: add source megapixels count and target megapixels count arguments args=[Arg(type='uint8_t', var='uses_3d_blit', c_format='%u'),