diff --git a/Common/GPU/Vulkan/thin3d_vulkan.cpp b/Common/GPU/Vulkan/thin3d_vulkan.cpp index a509a3b1ac..2ec5347a55 100644 --- a/Common/GPU/Vulkan/thin3d_vulkan.cpp +++ b/Common/GPU/Vulkan/thin3d_vulkan.cpp @@ -1298,7 +1298,7 @@ Texture *VKContext::CreateTexture(const TextureDesc &desc) { return tex; } else { ERROR_LOG(G3D, "Failed to create texture"); - delete tex; + tex->Release(); return nullptr; } } diff --git a/Common/Render/ManagedTexture.cpp b/Common/Render/ManagedTexture.cpp index 36a5031263..730fd29172 100644 --- a/Common/Render/ManagedTexture.cpp +++ b/Common/Render/ManagedTexture.cpp @@ -194,6 +194,10 @@ Draw::Texture *ManagedTexture::GetTexture() { } // Image load is done, texture creation is not. texture_ = CreateTextureFromTempImage(draw_, pendingImage_, generateMips_, filename_.c_str()); + if (!texture_) { + // Failed to create the texture for whatever reason, like dimensions. Don't retry next time. + state_ = LoadState::FAILED; + } pendingImage_.Free(); } return texture_;