summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/RenderBase.cpp
diff options
context:
space:
mode:
authorConnor McLaughlin <stenzek@gmail.com>2019-03-07 23:15:48 +1000
committerGitHub <noreply@github.com>2019-03-07 23:15:48 +1000
commit7d17163ce85f518e3951a39ab226a446c32a8e54 (patch)
treee41a382b9022d57dfe0b609fcf59cce588283794 /Source/Core/VideoCommon/RenderBase.cpp
parentae8412b9017761905670cff74809a1340ddfee01 (diff)
parent9ca394bbea91e7e6078e7f6433039acfab30b386 (diff)
Merge pull request #7862 from spycrab/macos_vulkan_crash
VideoCommon/RenderBase: Don't destroy pipelines that are in use
Diffstat (limited to 'Source/Core/VideoCommon/RenderBase.cpp')
-rw-r--r--Source/Core/VideoCommon/RenderBase.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp
index 132ce4bd6c..611eca29e6 100644
--- a/Source/Core/VideoCommon/RenderBase.cpp
+++ b/Source/Core/VideoCommon/RenderBase.cpp
@@ -398,7 +398,12 @@ void Renderer::CheckForConfigChanges()
// Check for post-processing shader changes. Done up here as it doesn't affect anything outside
// the post-processor. Note that options are applied every frame, so no need to check those.
if (m_post_processor->GetConfig()->GetShader() != g_ActiveConfig.sPostProcessingShader)
+ {
+ // The existing shader must not be in use when it's destroyed
+ WaitForGPUIdle();
+
m_post_processor->RecompileShader();
+ }
// Determine which (if any) settings have changed.
ShaderHostConfig new_host_config = ShaderHostConfig::GetCurrent();