summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2020-06-17 15:06:40 -0500
committeriwubcode <iwubcode@users.noreply.github.com>2020-07-02 12:55:08 -0500
commit0441d6aa5eb2d1ac45f1f1973fa5ad3adaf71f08 (patch)
treec7b5eb557c30e8f809485070d501a66d4f5d3007 /Source/Core
parentd6341c4117d59565b3bc42264d6fa5ba7e796526 (diff)
VertexShaderManager: Avoid accessing freelook control type configuration each call which caused a performance hit, move check to RenderBase where it is checked when config changes
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/VideoCommon/RenderBase.cpp6
-rw-r--r--Source/Core/VideoCommon/VertexShaderManager.cpp3
-rw-r--r--Source/Core/VideoCommon/VideoConfig.cpp1
3 files changed, 7 insertions, 3 deletions
diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp
index f3aa366af7..b2e7015ca6 100644
--- a/Source/Core/VideoCommon/RenderBase.cpp
+++ b/Source/Core/VideoCommon/RenderBase.cpp
@@ -63,6 +63,7 @@
#include "VideoCommon/FrameDump.h"
#include "VideoCommon/FramebufferManager.h"
#include "VideoCommon/FramebufferShaderGen.h"
+#include "VideoCommon/FreeLookCamera.h"
#include "VideoCommon/ImageWrite.h"
#include "VideoCommon/NetPlayChatUI.h"
#include "VideoCommon/NetPlayGolfUI.h"
@@ -406,6 +407,11 @@ void Renderer::CheckForConfigChanges()
UpdateActiveConfig();
+ if (g_ActiveConfig.bFreeLook)
+ {
+ g_freelook_camera.SetControlType(g_ActiveConfig.iFreelookControlType);
+ }
+
// Update texture cache settings with any changed options.
g_texture_cache->OnConfigChanged(g_ActiveConfig);
diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp
index 6c65a86efa..d9c44d767c 100644
--- a/Source/Core/VideoCommon/VertexShaderManager.cpp
+++ b/Source/Core/VideoCommon/VertexShaderManager.cpp
@@ -449,9 +449,6 @@ void VertexShaderManager::SetConstants()
dirty = true;
}
-
- // Handle a potential config change
- g_freelook_camera.SetControlType(Config::Get(Config::GFX_FREE_LOOK_CONTROL_TYPE));
}
void VertexShaderManager::InvalidateXFRange(int start, int end)
diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp
index b624755b11..1514f22db8 100644
--- a/Source/Core/VideoCommon/VideoConfig.cpp
+++ b/Source/Core/VideoCommon/VideoConfig.cpp
@@ -91,6 +91,7 @@ void VideoConfig::Refresh()
bDumpXFBTarget = Config::Get(Config::GFX_DUMP_XFB_TARGET);
bDumpFramesAsImages = Config::Get(Config::GFX_DUMP_FRAMES_AS_IMAGES);
bFreeLook = Config::Get(Config::GFX_FREE_LOOK);
+ iFreelookControlType = Config::Get(Config::GFX_FREE_LOOK_CONTROL_TYPE);
bUseFFV1 = Config::Get(Config::GFX_USE_FFV1);
sDumpFormat = Config::Get(Config::GFX_DUMP_FORMAT);
sDumpCodec = Config::Get(Config::GFX_DUMP_CODEC);