aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2024-08-20 20:49:17 -0300
committerGitHub <noreply@github.com>2024-08-21 00:49:17 +0100
commit460f9faf4e3ccb5a21b1c6f149815dfda095a16e (patch)
tree8f1be7d93c534aa7a34597061716ca5d1695ac35 /src/Ryujinx.Graphics.Vulkan
parent552c15739c10e9443e7e7a2acc775bfbc08faa0c (diff)
Fix NRE when using buffer image array (#7159)
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/ImageArray.cs2
-rw-r--r--src/Ryujinx.Graphics.Vulkan/ResourceArray.cs11
-rw-r--r--src/Ryujinx.Graphics.Vulkan/TextureArray.cs2
3 files changed, 11 insertions, 4 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/ImageArray.cs b/src/Ryujinx.Graphics.Vulkan/ImageArray.cs
index e42750d3..467b0111 100644
--- a/src/Ryujinx.Graphics.Vulkan/ImageArray.cs
+++ b/src/Ryujinx.Graphics.Vulkan/ImageArray.cs
@@ -95,7 +95,7 @@ namespace Ryujinx.Graphics.Vulkan
{
_cachedCommandBufferIndex = -1;
_storages = null;
- SetDirty(_gd);
+ SetDirty(_gd, isImage: true);
}
public void QueueWriteToReadBarriers(CommandBufferScoped cbs, PipelineStageFlags stageFlags)
diff --git a/src/Ryujinx.Graphics.Vulkan/ResourceArray.cs b/src/Ryujinx.Graphics.Vulkan/ResourceArray.cs
index 0880a10f..f96b4a84 100644
--- a/src/Ryujinx.Graphics.Vulkan/ResourceArray.cs
+++ b/src/Ryujinx.Graphics.Vulkan/ResourceArray.cs
@@ -14,13 +14,20 @@ namespace Ryujinx.Graphics.Vulkan
private int _bindCount;
- protected void SetDirty(VulkanRenderer gd)
+ protected void SetDirty(VulkanRenderer gd, bool isImage)
{
ReleaseDescriptorSet();
if (_bindCount != 0)
{
- gd.PipelineInternal.ForceTextureDirty();
+ if (isImage)
+ {
+ gd.PipelineInternal.ForceImageDirty();
+ }
+ else
+ {
+ gd.PipelineInternal.ForceTextureDirty();
+ }
}
}
diff --git a/src/Ryujinx.Graphics.Vulkan/TextureArray.cs b/src/Ryujinx.Graphics.Vulkan/TextureArray.cs
index 31c408d6..99238b1f 100644
--- a/src/Ryujinx.Graphics.Vulkan/TextureArray.cs
+++ b/src/Ryujinx.Graphics.Vulkan/TextureArray.cs
@@ -104,7 +104,7 @@ namespace Ryujinx.Graphics.Vulkan
{
_cachedCommandBufferIndex = -1;
_storages = null;
- SetDirty(_gd);
+ SetDirty(_gd, isImage: false);
}
public void QueueWriteToReadBarriers(CommandBufferScoped cbs, PipelineStageFlags stageFlags)