From 1668ba913fb6019587098ada7431db32d8089951 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Tue, 9 Jul 2024 23:31:01 -0300 Subject: [PATCH] Force dynamic state update after rasterizer discard disable (#7007) --- src/Ryujinx.Graphics.Vulkan/PipelineBase.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs index 8d7cd5472..00fcc0783 100644 --- a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs +++ b/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 componentMask)