Просмотр исходного кода

Vulkan: Clear dummy texture to (0,0,0,0) on creation (#3867)

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.
riperiperi 3 лет назад
Родитель
Сommit
7373ec5792
2 измененных файлов с 8 добавлено и 0 удалено
  1. 6 0
      Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs
  2. 2 0
      Ryujinx.Graphics.Vulkan/PipelineBase.cs

+ 6 - 0
Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs

@@ -130,6 +130,12 @@ namespace Ryujinx.Graphics.Vulkan
                 1f));
                 1f));
         }
         }
 
 
+        public void Initialize()
+        {
+            Span<byte> dummyTextureData = stackalloc byte[4];
+            _dummyTexture.SetData(dummyTextureData);
+        }
+
         public void SetProgram(ShaderCollection program)
         public void SetProgram(ShaderCollection program)
         {
         {
             _program = program;
             _program = program;

+ 2 - 0
Ryujinx.Graphics.Vulkan/PipelineBase.cs

@@ -114,6 +114,8 @@ namespace Ryujinx.Graphics.Vulkan
 
 
         public void Initialize()
         public void Initialize()
         {
         {
+            _descriptorSetUpdater.Initialize();
+
             SupportBufferUpdater = new SupportBufferUpdater(Gd);
             SupportBufferUpdater = new SupportBufferUpdater(Gd);
             SupportBufferUpdater.UpdateRenderScale(_renderScale, 0, SupportBuffer.RenderScaleMaxCount);
             SupportBufferUpdater.UpdateRenderScale(_renderScale, 0, SupportBuffer.RenderScaleMaxCount);