Use dynamic state for primitive topology if dynamicPrimitiveTopologyUnrestricted is supported.
This commit is contained in:
parent
dcc999c798
commit
89dee194d2
4 changed files with 77 additions and 5 deletions
|
@ -435,9 +435,13 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
var inputAssemblyState = new PipelineInputAssemblyStateCreateInfo
|
||||
{
|
||||
SType = StructureType.PipelineInputAssemblyStateCreateInfo,
|
||||
Topology = Topology,
|
||||
};
|
||||
|
||||
if (!gd.SupportsUnrestrictedDynamicTopology)
|
||||
{
|
||||
inputAssemblyState.Topology = Topology;
|
||||
}
|
||||
|
||||
var tessellationState = new PipelineTessellationStateCreateInfo
|
||||
{
|
||||
SType = StructureType.PipelineTessellationStateCreateInfo,
|
||||
|
@ -633,6 +637,11 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
{
|
||||
additionalDynamicStatesCount++;
|
||||
}
|
||||
|
||||
if (gd.SupportsUnrestrictedDynamicTopology)
|
||||
{
|
||||
additionalDynamicStatesCount++;
|
||||
}
|
||||
}
|
||||
|
||||
int dynamicStatesCount = baseDynamicStatesCount + additionalDynamicStatesCount;
|
||||
|
@ -710,6 +719,11 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
{
|
||||
dynamicStates[currentIndex++] = DynamicState.DepthClipNegativeOneToOneExt;
|
||||
}
|
||||
|
||||
if (gd.SupportsUnrestrictedDynamicTopology)
|
||||
{
|
||||
dynamicStates[currentIndex++] = DynamicState.PrimitiveTopology;
|
||||
}
|
||||
}
|
||||
|
||||
var pipelineDynamicStateCreateInfo = new PipelineDynamicStateCreateInfo
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue