From e356edb9e7cc7081a75f0ebef5bdf6ef8d00265f Mon Sep 17 00:00:00 2001 From: Mehran Date: Tue, 6 Oct 2026 11:48:14 +0300 Subject: [PATCH] perf(agc): check the most recent framebuffer first --- .../prx/libSceAgcDriver/Graphics/src/Pipeline.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp b/core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp index e77279db58f..51f89e31cc9 100644 --- a/core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp +++ b/core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp @@ -288,18 +288,21 @@ std::shared_ptr Pipeline::AcquireFramebuffer(std::spanextent.width != extent.width || it->extent.height != extent.height || !std::equal(it->views.begin(), it->views.end(), targets.begin(), targets.end())) continue; - // View handles are recycled once a StorageTexture is destroyed, so the owners must be the - // very objects the views were made for. - bool same = true; - for (std::size_t i = 0; i < owners.size() && same; ++i) same = it->owners[i].lock().get() == owners[i].get(); - if (!same) continue; + if (!matches(*it)) continue; std::rotate(it, std::next(it), framebuffers.end()); return framebuffers.back().framebuffer; }