summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/CPUCull.cpp
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2023-11-25 16:23:54 -0600
committeriwubcode <iwubcode@users.noreply.github.com>2023-11-26 16:27:26 -0600
commit849a0c13b5fbfc31b38e2b2593b1213b8adfb9f4 (patch)
tree115cb2a61d54aff3e376e59426453f0399e6560c /Source/Core/VideoCommon/CPUCull.cpp
parent1a2d0882d04446550687424e36a81a2c16a6a00d (diff)
VideoCommon: move xf state management to its own class, so changes can be detected in places other than VertexShaderManager
Diffstat (limited to 'Source/Core/VideoCommon/CPUCull.cpp')
-rw-r--r--Source/Core/VideoCommon/CPUCull.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/CPUCull.cpp b/Source/Core/VideoCommon/CPUCull.cpp
index 92fdc81cc8..5225bbabe5 100644
--- a/Source/Core/VideoCommon/CPUCull.cpp
+++ b/Source/Core/VideoCommon/CPUCull.cpp
@@ -14,6 +14,7 @@
#include "VideoCommon/VertexShaderManager.h"
#include "VideoCommon/VideoConfig.h"
#include "VideoCommon/XFMemory.h"
+#include "VideoCommon/XFStateManager.h"
// We really want things like c.w * a.x - a.w * c.x to stay symmetric, so they cancel to zero on
// degenerate triangles. Make sure the compiler doesn't optimize in fmas where not requested.
@@ -153,7 +154,8 @@ bool CPUCull::AreAllVerticesCulled(VertexLoaderBase* loader, OpcodeDecoder::Prim
}
// transform functions need the projection matrix to tranform to clip space
- Core::System::GetInstance().GetVertexShaderManager().SetProjectionMatrix();
+ auto& system = Core::System::GetInstance();
+ system.GetVertexShaderManager().SetProjectionMatrix(system.GetXFStateManager());
static constexpr Common::EnumMap<CullMode, CullMode::All> cullmode_invert = {
CullMode::None, CullMode::Front, CullMode::Back, CullMode::All};