From 1dd716ec62f1cc018d6396d05058375c0b551b69 Mon Sep 17 00:00:00 2001 From: milescoviello Date: Fri, 16 Oct 2026 16:45:44 +0000 Subject: [PATCH] perf(agc): time compute pipeline creation VulkanDevice::createComputePipeline, used by dispatches and the pipeline journal's replay, had no PerformanceTimer, so a dispatch that compiles its pipeline showed up in traces and frame timing as Driver.Dispatch time with no slice under it. It is now Vulkan.ComputePipeline, as graphics pipeline builds already are Vulkan.GraphicsPipeline. Co-Authored-By: Claude Opus 5.5 --- core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp b/core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp index 62afeaea77b..dd3cf24d48c 100644 --- a/core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp +++ b/core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp @@ -4549,6 +4549,7 @@ void VulkanDevice::recordDispatch(RecordedDispatch& record) { // its bindings describe): what a dispatch or its preparation builds at the first use of a module, // and what the journal replay builds on its own threads before that use. std::shared_ptr VulkanDevice::createComputePipeline(const Graphics::Context& context, const ShaderRecompiler::RecompileResult& shader, VkDescriptorSetLayout setLayout, std::span layoutKey, VkShaderStageFlags pushStages, std::uint64_t programAddress) { + PerformanceTimer timing("Vulkan.ComputePipeline"); static const bool profile = std::getenv("APS5_PROFILE_DRAW") != nullptr; const auto start = std::chrono::steady_clock::now(); auto objects = std::make_shared();