diff options
| author | Anthony <Helios747@users.noreply.github.com> | 2017-07-30 01:00:16 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-30 01:00:16 -0700 |
| commit | ba57605266b9ab178963bf56e146f355d1b93cd4 (patch) | |
| tree | 0ddc89cfca6db3d343d317c18b7c07c9ab83e9c4 /Source/Core/VideoBackends/Vulkan/main.cpp | |
| parent | 5bad2ee4a4129e734ff4f4d861cedc4cd573df55 (diff) | |
| parent | b154edb4fbdb327920a33b44f35f34cdf2636d6f (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.cpp | 10 |
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) |
