From 27650fe3e46d9c7a6b896222b92a39d2963b5ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Wed, 13 May 2026 23:08:05 +0200 Subject: [PATCH] Fix race condition during Vulkan startup --- GPU/Vulkan/TextureCacheVulkan.cpp | 8 +++----- GPU/Vulkan/TextureCacheVulkan.h | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/GPU/Vulkan/TextureCacheVulkan.cpp b/GPU/Vulkan/TextureCacheVulkan.cpp index 37d975b0f0..242421e7f2 100644 --- a/GPU/Vulkan/TextureCacheVulkan.cpp +++ b/GPU/Vulkan/TextureCacheVulkan.cpp @@ -256,16 +256,14 @@ void TextureCacheVulkan::DeviceRestore(Draw::DrawContext *draw) { VkResult res = vkCreateSampler(vulkan->GetDevice(), &samp, nullptr, &samplerNearest_); _assert_(res == VK_SUCCESS); - VkCommandBuffer cmdInit = (VkCommandBuffer)draw_->GetNativeObject(Draw::NativeObject::INIT_COMMANDBUFFER); - CompileScalingShader(cmdInit); + CompileScalingShader(); computeShaderManager_.DeviceRestore(draw); } void TextureCacheVulkan::NotifyConfigChanged() { TextureCacheCommon::NotifyConfigChanged(); - VkCommandBuffer cmdInit = (VkCommandBuffer)draw_->GetNativeObject(Draw::NativeObject::INIT_COMMANDBUFFER); - CompileScalingShader(cmdInit); + CompileScalingShader(); } static std::string ReadShaderSrc(const Path &filename) { @@ -364,7 +362,7 @@ bool TextureCacheVulkan::CompileMultipassShader(VulkanContext *vulkan, const Tex return true; } -void TextureCacheVulkan::CompileScalingShader(VkCommandBuffer cmdInit) { +void TextureCacheVulkan::CompileScalingShader() { if (!draw_) { // Something is very wrong. return; diff --git a/GPU/Vulkan/TextureCacheVulkan.h b/GPU/Vulkan/TextureCacheVulkan.h index 9da40d692d..b1d5abd8db 100644 --- a/GPU/Vulkan/TextureCacheVulkan.h +++ b/GPU/Vulkan/TextureCacheVulkan.h @@ -121,7 +121,7 @@ private: void BuildTexture(TexCacheEntry *const entry) override; - void CompileScalingShader(VkCommandBuffer cmdInit); + void CompileScalingShader(); bool CompileMultipassShader(VulkanContext *vulkan, const TextureShaderInfo &shaderInfo, std::string *error); void ClearScalingShaders(VulkanContext *vulkan); bool HasScalingShader() const;