summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexShaderManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/VertexShaderManager.cpp')
-rw-r--r--Source/Core/VideoCommon/VertexShaderManager.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp
index 680d1ad3ee..555819e072 100644
--- a/Source/Core/VideoCommon/VertexShaderManager.cpp
+++ b/Source/Core/VideoCommon/VertexShaderManager.cpp
@@ -38,6 +38,7 @@ static bool bProjectionChanged;
static bool bViewportChanged;
static bool bTexMtxInfoChanged;
static bool bLightingConfigChanged;
+static bool bProjectionGraphicsModChange;
static BitSet32 nMaterialsChanged;
static std::array<int, 2> nTransformMatricesChanged; // min,max
static std::array<int, 2> nNormalMatricesChanged; // min,max
@@ -63,6 +64,7 @@ void VertexShaderManager::Init()
bViewportChanged = false;
bTexMtxInfoChanged = false;
bLightingConfigChanged = false;
+ bProjectionGraphicsModChange = false;
std::memset(static_cast<void*>(&xfmem), 0, sizeof(xfmem));
constants = {};
@@ -322,9 +324,10 @@ void VertexShaderManager::SetConstants(const std::vector<std::string>& textures)
}
if (bProjectionChanged || g_freelook_camera.GetController()->IsDirty() ||
- !projection_actions.empty())
+ !projection_actions.empty() || bProjectionGraphicsModChange)
{
bProjectionChanged = false;
+ bProjectionGraphicsModChange = !projection_actions.empty();
const auto& rawProjection = xfmem.projection.rawProjection;