diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2024-07-09 23:31:01 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-09 23:31:01 -0300 |
| commit | 1668ba913fb6019587098ada7431db32d8089951 (patch) | |
| tree | e8d87980964c7d805361b56ed16749f03cee3f68 | |
| parent | a830eb666b058df38f734c6369eb18cc7212f36c (diff) | |
Force dynamic state update after rasterizer discard disable (#7007)
| -rw-r--r-- | src/Ryujinx.Graphics.Vulkan/PipelineBase.cs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs index 8d7cd547..00fcc078 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<uint> componentMask) |
