From 2b9d30b2f39efd2f3681c049a3e973fde1c8d615 Mon Sep 17 00:00:00 2001 From: Malcolm Jestadt Date: Fri, 21 Feb 2025 16:37:27 -0500 Subject: [PATCH] RSX: ProgramStateCache microoptimizations - Saves 1 instruction in each loop --- rpcs3/Emu/RSX/Program/ProgramStateCache.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/rpcs3/Emu/RSX/Program/ProgramStateCache.cpp b/rpcs3/Emu/RSX/Program/ProgramStateCache.cpp index f38e750609..16c8b10569 100644 --- a/rpcs3/Emu/RSX/Program/ProgramStateCache.cpp +++ b/rpcs3/Emu/RSX/Program/ProgramStateCache.cpp @@ -751,7 +751,7 @@ bool fragment_program_compare::operator()(const RSXFragmentProgram& binary1, con const void* instBuffer1 = binary1.get_data(); const void* instBuffer2 = binary2.get_data(); usz instIndex = 0; - while (true) + while (instIndex < (binary1.ucode_length / 16)) { const auto inst1 = v128::loadu(instBuffer1, instIndex); const auto inst2 = v128::loadu(instBuffer2, instIndex); @@ -765,13 +765,9 @@ bool fragment_program_compare::operator()(const RSXFragmentProgram& binary1, con // Skip constants if (fragment_program_utils::is_any_src_constant(inst1)) instIndex++; - - const bool end = ((inst1._u32[0] >> 8) & 0x1); - if (end) - { - return true; - } } + + return true; } namespace rsx