Преглед изворни кода

GPU: Fix layered attachment write (#4131)

Fixes a regression caused by #4003 where the code that writes `_vtgWritesRtLayer` was removed, breaking the crowd in mario strikers.
riperiperi пре 3 година
родитељ
комит
5a085cba0f
1 измењених фајлова са 8 додато и 1 уклоњено
  1. 8 1
      Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs

+ 8 - 1
Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs

@@ -1295,7 +1295,14 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
 
 
             for (int stageIndex = 0; stageIndex < Constants.ShaderStages; stageIndex++)
             for (int stageIndex = 0; stageIndex < Constants.ShaderStages; stageIndex++)
             {
             {
-                _currentProgramInfo[stageIndex] = gs.Shaders[stageIndex + 1]?.Info;
+                ShaderProgramInfo info = gs.Shaders[stageIndex + 1]?.Info;
+
+                if (info?.UsesRtLayer == true)
+                {
+                    _vtgWritesRtLayer = true;
+                }
+
+                _currentProgramInfo[stageIndex] = info;
             }
             }
 
 
             _context.Renderer.Pipeline.SetProgram(gs.HostProgram);
             _context.Renderer.Pipeline.SetProgram(gs.HostProgram);