diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs index cadc3d2aeb..9e387fd5df 100644 --- a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs +++ b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs @@ -727,10 +727,18 @@ namespace Ryujinx.Graphics.Vulkan if (_supportExtDynamic) { + var oldTopologyClass = GetTopologyClass(oldTopology); + var newTopologyClass = GetTopologyClass(DynamicState.Topology); + DynamicState.SetCullMode(oldCullMode); DynamicState.SetStencilTest(oldStencilTestEnable); DynamicState.SetDepthTestBool(oldDepthTestEnable, oldDepthWriteEnable); DynamicState.SetPrimitiveTopology(oldTopology); + + if (oldTopologyClass != newTopologyClass) + { + _newState.Topology = oldTopology; + } } else {