Do not set patch control points dynamic state if there is no tessalation control shader. Thank you riperiperi

This commit is contained in:
sunshineinabox 2024-07-31 08:14:26 -07:00
parent 1b9e42bdb4
commit fb964b514c
2 changed files with 4 additions and 4 deletions

View file

@ -994,7 +994,7 @@ namespace Ryujinx.Graphics.Vulkan
public void SetPatchParameters(int vertices, ReadOnlySpan<float> defaultOuterLevel, ReadOnlySpan<float> defaultInnerLevel)
{
if (Gd.ExtendedDynamicState2Features.ExtendedDynamicState2PatchControlPoints)
if (Gd.ExtendedDynamicState2Features.ExtendedDynamicState2PatchControlPoints && _newState.HasTessellationControlShader)
{
DynamicState.SetPatchControlPoints((uint)vertices);
}

View file

@ -432,7 +432,7 @@ namespace Ryujinx.Graphics.Vulkan
SType = StructureType.PipelineTessellationStateCreateInfo,
};
if (!gd.ExtendedDynamicState2Features.ExtendedDynamicState2PatchControlPoints)
if (!gd.ExtendedDynamicState2Features.ExtendedDynamicState2)
{
tessellationState.PatchControlPoints = PatchControlPoints;
}
@ -587,7 +587,7 @@ namespace Ryujinx.Graphics.Vulkan
{
additionalDynamicStatesCount++;
}
if (gd.ExtendedDynamicState2Features.ExtendedDynamicState2PatchControlPoints)
if (gd.ExtendedDynamicState2Features.ExtendedDynamicState2PatchControlPoints && HasTessellationControlShader)
{
additionalDynamicStatesCount++;
}
@ -642,7 +642,7 @@ namespace Ryujinx.Graphics.Vulkan
{
dynamicStates[currentIndex++] = DynamicState.LogicOpExt;
}
if (gd.ExtendedDynamicState2Features.ExtendedDynamicState2PatchControlPoints)
if (gd.ExtendedDynamicState2Features.ExtendedDynamicState2PatchControlPoints && HasTessellationControlShader)
{
dynamicStates[currentIndex++] = DynamicState.PatchControlPointsExt;
}