diff options
| author | Robin Kertels <robin.kertels@gmail.com> | 2022-11-16 14:39:29 +0100 |
|---|---|---|
| committer | Robin Kertels <robin.kertels@gmail.com> | 2022-11-18 01:42:30 +0100 |
| commit | f179fd9c33fa7fb018ae9b8c378606d3b6f104f8 (patch) | |
| tree | 72330952776f6f1f6fa25fdebf358cbaa1f5766c /Source/Core/VideoCommon/OpcodeDecoding.cpp | |
| parent | 8a1c28be6318c9d3cd373bcee3f80969d466e9b1 (diff) | |
VideoCommon:VertexLoaderManager: Reduce CPConfig checks
A bit of a micro optimization:
CheckCPConfiguration is called 350 times instead of 35k times.
Diffstat (limited to 'Source/Core/VideoCommon/OpcodeDecoding.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/OpcodeDecoding.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
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) { |
