aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorriperiperi <rhy3756547@hotmail.com>2022-11-19 02:11:34 +0000
committerGitHub <noreply@github.com>2022-11-18 23:11:34 -0300
commit7373ec579226e198d3d7825811eb592489acee1c (patch)
tree7f039656a602196d64a78b20889fac7b6ad06b4b
parentde162a648b3bb1c8080460bfb8392951340ef40b (diff)
Vulkan: Clear dummy texture to (0,0,0,0) on creation (#3867)1.1.363
This might fix an issue with AMD gpus on linux where the data could contain random garbage data. On the switch, it always samples as 0.
-rw-r--r--Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs6
-rw-r--r--Ryujinx.Graphics.Vulkan/PipelineBase.cs2
2 files changed, 8 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs b/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs
index e0d5d286..8479bcf7 100644
--- a/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs
+++ b/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs
@@ -130,6 +130,12 @@ namespace Ryujinx.Graphics.Vulkan
1f));
}
+ public void Initialize()
+ {
+ Span<byte> dummyTextureData = stackalloc byte[4];
+ _dummyTexture.SetData(dummyTextureData);
+ }
+
public void SetProgram(ShaderCollection program)
{
_program = program;
diff --git a/Ryujinx.Graphics.Vulkan/PipelineBase.cs b/Ryujinx.Graphics.Vulkan/PipelineBase.cs
index 4efe61bf..5d2263aa 100644
--- a/Ryujinx.Graphics.Vulkan/PipelineBase.cs
+++ b/Ryujinx.Graphics.Vulkan/PipelineBase.cs
@@ -114,6 +114,8 @@ namespace Ryujinx.Graphics.Vulkan
public void Initialize()
{
+ _descriptorSetUpdater.Initialize();
+
SupportBufferUpdater = new SupportBufferUpdater(Gd);
SupportBufferUpdater.UpdateRenderScale(_renderScale, 0, SupportBuffer.RenderScaleMaxCount);