diff options
author | riperiperi <rhy3756547@hotmail.com> | 2022-11-19 02:11:34 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-18 23:11:34 -0300 |
commit | 7373ec579226e198d3d7825811eb592489acee1c (patch) | |
tree | 7f039656a602196d64a78b20889fac7b6ad06b4b | |
parent | de162a648b3bb1c8080460bfb8392951340ef40b (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.cs | 6 | ||||
-rw-r--r-- | Ryujinx.Graphics.Vulkan/PipelineBase.cs | 2 |
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); |