summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/OpcodeDecoding.cpp
diff options
context:
space:
mode:
authorRobin Kertels <robin.kertels@gmail.com>2022-11-16 14:39:29 +0100
committerRobin Kertels <robin.kertels@gmail.com>2022-11-18 01:42:30 +0100
commitf179fd9c33fa7fb018ae9b8c378606d3b6f104f8 (patch)
tree72330952776f6f1f6fa25fdebf358cbaa1f5766c /Source/Core/VideoCommon/OpcodeDecoding.cpp
parent8a1c28be6318c9d3cd373bcee3f80969d466e9b1 (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.cpp8
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)
{