diff options
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/main.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/main.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/main.cpp b/Source/Core/VideoBackends/Vulkan/main.cpp index 2fdcae7e98..4354a7a58b 100644 --- a/Source/Core/VideoBackends/Vulkan/main.cpp +++ b/Source/Core/VideoBackends/Vulkan/main.cpp @@ -215,19 +215,22 @@ bool VideoBackend::Initialize(void* window_handle) // Create main wrapper instances. g_object_cache = std::make_unique<ObjectCache>(); + g_shader_cache = std::make_unique<ShaderCache>(); g_framebuffer_manager = std::make_unique<FramebufferManager>(); g_renderer = std::make_unique<Renderer>(std::move(swap_chain)); // Invoke init methods on main wrapper classes. // These have to be done before the others because the destructors // for the remaining classes may call methods on these. - if (!g_object_cache->Initialize() || !FramebufferManager::GetInstance()->Initialize() || - !StateTracker::CreateInstance() || !Renderer::GetInstance()->Initialize()) + if (!g_object_cache->Initialize() || !g_shader_cache->Initialize() || + !FramebufferManager::GetInstance()->Initialize() || !StateTracker::CreateInstance() || + !Renderer::GetInstance()->Initialize()) { PanicAlert("Failed to initialize Vulkan classes."); g_renderer.reset(); StateTracker::DestroyInstance(); g_framebuffer_manager.reset(); + g_shader_cache.reset(); g_object_cache.reset(); g_command_buffer_mgr.reset(); g_vulkan_context.reset(); @@ -250,6 +253,7 @@ bool VideoBackend::Initialize(void* window_handle) g_renderer.reset(); StateTracker::DestroyInstance(); g_framebuffer_manager.reset(); + g_shader_cache.reset(); g_object_cache.reset(); g_command_buffer_mgr.reset(); g_vulkan_context.reset(); @@ -276,6 +280,7 @@ void VideoBackend::Shutdown() { g_command_buffer_mgr->WaitForGPUIdle(); + g_shader_cache.reset(); g_object_cache.reset(); g_command_buffer_mgr.reset(); g_vulkan_context.reset(); @@ -291,7 +296,7 @@ void VideoBackend::Video_Cleanup() // Save all cached pipelines out to disk for next time. if (g_ActiveConfig.bShaderCache) - g_object_cache->SavePipelineCache(); + g_shader_cache->SavePipelineCache(); g_perf_query.reset(); g_texture_cache.reset(); |
