From 5a491abbda3e9aa08d3ed77e05bd547d2f0e90a1 Mon Sep 17 00:00:00 2001 From: nmzik Date: Tue, 6 Oct 2026 05:06:54 +0400 Subject: [PATCH] shader: remove redundant descriptor sorting and stale null check --- .../shader/recompiler/ir/passes/ResourceMaterialization.cpp | 6 ++++-- .../shader/recompiler/ir/passes/ResourceTracking.cpp | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/graphics/shader/recompiler/ir/passes/ResourceMaterialization.cpp b/src/graphics/shader/recompiler/ir/passes/ResourceMaterialization.cpp index 1860c6b5c..8faee80b1 100644 --- a/src/graphics/shader/recompiler/ir/passes/ResourceMaterialization.cpp +++ b/src/graphics/shader/recompiler/ir/passes/ResourceMaterialization.cpp @@ -402,8 +402,10 @@ bool MaterializeIndirectDescriptor(const ResourcePlan& p mask &= mask - 1u; } } else return false; - std::ranges::sort(keys); - keys.erase(std::unique(keys.begin(), keys.end()), keys.end()); + if (selector != nullptr) { + std::ranges::sort(keys); + keys.erase(std::unique(keys.begin(), keys.end()), keys.end()); + } } const auto mapping_offset = snapshot.flattened_srt.size(); diff --git a/src/graphics/shader/recompiler/ir/passes/ResourceTracking.cpp b/src/graphics/shader/recompiler/ir/passes/ResourceTracking.cpp index 9ceb5735f..c6f4b17f1 100644 --- a/src/graphics/shader/recompiler/ir/passes/ResourceTracking.cpp +++ b/src/graphics/shader/recompiler/ir/passes/ResourceTracking.cpp @@ -1657,7 +1657,7 @@ private: (dword != 0u && !EquivalentValue(m_program, table_guard, read->Arg(4)))) return false; table_guard = read->Arg(4); } - if (memory == nullptr || memory->offset > INT32_MAX || (memory->offset & 3u) != 0u || + if (memory->offset > INT32_MAX || (memory->offset & 3u) != 0u || !MemoryIndexBelongsTo(memory_index, *read)) { return false; }