diff --git a/Common/GPU/Vulkan/VulkanRenderManager.h b/Common/GPU/Vulkan/VulkanRenderManager.h index 3cad859e8d..b0ca50d4bf 100644 --- a/Common/GPU/Vulkan/VulkanRenderManager.h +++ b/Common/GPU/Vulkan/VulkanRenderManager.h @@ -456,13 +456,13 @@ public: void Invalidate(InvalidationFlags flags); void ResetStats(); + void DrainCompileQueue(); private: void EndCurRenderStep(); void ThreadFunc(); void CompileThreadFunc(); - void DrainCompileQueue(); void Run(VKRRenderThreadTask &task); diff --git a/GPU/Vulkan/GPU_Vulkan.cpp b/GPU/Vulkan/GPU_Vulkan.cpp index 30fec133c4..ee68954fd3 100644 --- a/GPU/Vulkan/GPU_Vulkan.cpp +++ b/GPU/Vulkan/GPU_Vulkan.cpp @@ -182,6 +182,9 @@ void GPU_Vulkan::SaveCache(const Path &filename) { } GPU_Vulkan::~GPU_Vulkan() { + VulkanRenderManager *rm = (VulkanRenderManager *)draw_->GetNativeObject(Draw::NativeObject::RENDER_MANAGER); + rm->DrainCompileQueue(); + SaveCache(shaderCachePath_); // Note: We save the cache in DeviceLost DestroyDeviceObjects();