From f179fd9c33fa7fb018ae9b8c378606d3b6f104f8 Mon Sep 17 00:00:00 2001 From: Robin Kertels Date: Wed, 16 Nov 2022 14:39:29 +0100 Subject: VideoCommon:VertexLoaderManager: Reduce CPConfig checks A bit of a micro optimization: CheckCPConfiguration is called 350 times instead of 35k times. --- Source/Core/VideoCommon/OpcodeDecoding.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'Source/Core/VideoCommon/OpcodeDecoding.cpp') diff --git a/Source/Core/VideoCommon/OpcodeDecoding.cpp b/Source/Core/VideoCommon/OpcodeDecoding.cpp index bc19a1c2de..fcc33add24 100644 --- a/Source/Core/VideoCommon/OpcodeDecoding.cpp +++ b/Source/Core/VideoCommon/OpcodeDecoding.cpp @@ -56,18 +56,26 @@ public: if constexpr (!is_preprocess) { if (sub_command == MATINDEX_A) + { + VertexLoaderManager::g_needs_cp_xf_consistency_check = true; VertexShaderManager::SetTexMatrixChangedA(value); + } else if (sub_command == MATINDEX_B) + { + VertexLoaderManager::g_needs_cp_xf_consistency_check = true; VertexShaderManager::SetTexMatrixChangedB(value); + } else if (sub_command == VCD_LO || sub_command == VCD_HI) { VertexLoaderManager::g_main_vat_dirty = BitSet8::AllTrue(CP_NUM_VAT_REG); VertexLoaderManager::g_bases_dirty = true; + VertexLoaderManager::g_needs_cp_xf_consistency_check = true; } else if (sub_command == CP_VAT_REG_A || sub_command == CP_VAT_REG_B || sub_command == CP_VAT_REG_C) { VertexLoaderManager::g_main_vat_dirty[command & CP_VAT_MASK] = true; + VertexLoaderManager::g_needs_cp_xf_consistency_check = true; } else if (sub_command == ARRAY_BASE) { -- cgit v1.2.3