Avoid creating pipelines for each topology.

This commit is contained in:
sunshineinabox 2024-08-12 22:09:09 -07:00
parent 2d1af4ddb4
commit 674288a71f
2 changed files with 3 additions and 3 deletions

View file

@ -671,7 +671,7 @@ namespace Ryujinx.Graphics.Vulkan
{
if (oldTopology.ConvertToClass() != _newState.Topology.ConvertToClass())
{
_newState.Topology = oldTopology;
_newState.Topology = oldTopology.ConvertToClass();
}
DynamicState.SetCullMode(oldCullMode);
@ -1078,7 +1078,7 @@ namespace Ryujinx.Graphics.Vulkan
if ((_newState.Topology.ConvertToClass() != newTopologyClass))
{
_newState.Topology = vkTopology;
_newState.Topology = vkTopology.ConvertToClass();
}
DynamicState.SetPrimitiveTopology(vkTopology);

View file

@ -218,7 +218,7 @@ namespace Ryujinx.Graphics.Vulkan
pipeline.StencilBackDepthFailOp = extendedDynamicState ? 0 : state.StencilTest.BackDpFail.Convert();
pipeline.StencilBackCompareOp = extendedDynamicState ? 0 : state.StencilTest.BackFunc.Convert();
pipeline.Topology = gd.TopologyRemap(state.Topology).Convert();
pipeline.Topology = extendedDynamicState ? gd.TopologyRemap(state.Topology).Convert().ConvertToClass() : gd.TopologyRemap(state.Topology).Convert();
int vaCount = Math.Min(Constants.MaxVertexAttributes, state.VertexAttribCount);
int vbCount = Math.Min(Constants.MaxVertexBuffers, state.VertexBufferCount);