diff --git a/Ryujinx.Graphics.Vulkan/TextureStorage.cs b/Ryujinx.Graphics.Vulkan/TextureStorage.cs
index b2cbd6029c..c4ebaef3b5 100644
--- a/Ryujinx.Graphics.Vulkan/TextureStorage.cs
+++ b/Ryujinx.Graphics.Vulkan/TextureStorage.cs
@@ -480,6 +480,8 @@ namespace Ryujinx.Graphics.Vulkan
             if (--_viewsCount == 0)
             {
                 _gd.PipelineInternal?.FlushCommandsIfWeightExceeding(_imageAuto, _size);
+
+                Dispose();
             }
         }
 
diff --git a/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs b/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
index d92fff49ec..96c7da6c73 100644
--- a/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
+++ b/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
@@ -310,7 +310,7 @@ namespace Ryujinx.Graphics.Vulkan
         internal TextureView CreateTextureView(TextureCreateInfo info, float scale)
         {
             // This should be disposed when all views are destroyed.
-            using var storage = CreateTextureStorage(info, scale);
+            var storage = CreateTextureStorage(info, scale);
             return storage.CreateView(info, 0, 0);
         }