Explorar o código

Force dynamic state update after rasterizer discard disable (#7007)

gdkchan hai 1 ano
pai
achega
1668ba913f
Modificáronse 1 ficheiros con 7 adicións e 0 borrados
  1. 7 0
      src/Ryujinx.Graphics.Vulkan/PipelineBase.cs

+ 7 - 0
src/Ryujinx.Graphics.Vulkan/PipelineBase.cs

@@ -1020,6 +1020,13 @@ namespace Ryujinx.Graphics.Vulkan
         {
             _newState.RasterizerDiscardEnable = discard;
             SignalStateChange();
+
+            if (!discard && Gd.Vendor == Vendor.Qualcomm)
+            {
+                // On Adreno, enabling rasterizer discard somehow corrupts the viewport state.
+                // Force it to be updated on next use to work around this bug.
+                DynamicState.ForceAllDirty();
+            }
         }
 
         public void SetRenderTargetColorMasks(ReadOnlySpan<uint> componentMask)