diff --git a/GPU/Vulkan/DepalettizeShaderVulkan.cpp b/GPU/Vulkan/DepalettizeShaderVulkan.cpp index 76d74b3d7241..2503f59f96d6 100644 --- a/GPU/Vulkan/DepalettizeShaderVulkan.cpp +++ b/GPU/Vulkan/DepalettizeShaderVulkan.cpp @@ -72,6 +72,7 @@ void DepalShaderCacheVulkan::DeviceLost() { if (vshader_) { vulkan2D_->PurgeVertexShader(vshader_); vulkan_->Delete().QueueDeleteShaderModule(vshader_); + vshader_ = VK_NULL_HANDLE; } draw_ = nullptr; vulkan_ = nullptr; diff --git a/GPU/Vulkan/GPU_Vulkan.cpp b/GPU/Vulkan/GPU_Vulkan.cpp index a1e6152503e1..1a5e254e275b 100644 --- a/GPU/Vulkan/GPU_Vulkan.cpp +++ b/GPU/Vulkan/GPU_Vulkan.cpp @@ -172,9 +172,10 @@ GPU_Vulkan::~GPU_Vulkan() { // Note: We save the cache in DeviceLost DestroyDeviceObjects(); framebufferManagerVulkan_->DestroyAllFBOs(); - vulkan2D_.Shutdown(); depalShaderCache_.Clear(); + depalShaderCache_.DeviceLost(); drawEngine_.DeviceLost(); + vulkan2D_.Shutdown(); delete textureCacheVulkan_; delete pipelineManager_; delete shaderManagerVulkan_;