summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/main.cpp
diff options
context:
space:
mode:
authorAnthony <Helios747@users.noreply.github.com>2017-07-30 01:00:16 -0700
committerGitHub <noreply@github.com>2017-07-30 01:00:16 -0700
commitba57605266b9ab178963bf56e146f355d1b93cd4 (patch)
tree0ddc89cfca6db3d343d317c18b7c07c9ab83e9c4 /Source/Core/VideoBackends/Vulkan/main.cpp
parent5bad2ee4a4129e734ff4f4d861cedc4cd573df55 (diff)
parentb154edb4fbdb327920a33b44f35f34cdf2636d6f (diff)
Merge pull request #5702 from stenzek/ubershaders
Ubershaders 2.0
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/main.cpp')
-rw-r--r--Source/Core/VideoBackends/Vulkan/main.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/main.cpp b/Source/Core/VideoBackends/Vulkan/main.cpp
index 4354a7a58b..f507d6cf05 100644
--- a/Source/Core/VideoBackends/Vulkan/main.cpp
+++ b/Source/Core/VideoBackends/Vulkan/main.cpp
@@ -253,6 +253,7 @@ bool VideoBackend::Initialize(void* window_handle)
g_renderer.reset();
StateTracker::DestroyInstance();
g_framebuffer_manager.reset();
+ g_shader_cache->Shutdown();
g_shader_cache.reset();
g_object_cache.reset();
g_command_buffer_mgr.reset();
@@ -262,6 +263,14 @@ bool VideoBackend::Initialize(void* window_handle)
return false;
}
+ // Ensure all pipelines previously used by the game have been created.
+ StateTracker::GetInstance()->ReloadPipelineUIDCache();
+
+ // Lastly, precompile ubershaders, if requested.
+ // This has to be done after the texture cache and shader cache are initialized.
+ if (g_ActiveConfig.CanPrecompileUberShaders())
+ g_shader_cache->PrecompileUberShaders();
+
return true;
}
@@ -293,6 +302,7 @@ void VideoBackend::Shutdown()
void VideoBackend::Video_Cleanup()
{
g_command_buffer_mgr->WaitForGPUIdle();
+ g_shader_cache->Shutdown();
// Save all cached pipelines out to disk for next time.
if (g_ActiveConfig.bShaderCache)