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

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

gdkchan 1 год назад
Родитель
Сommit
1668ba913f
1 измененных файлов с 7 добавлено и 0 удалено
  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)