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) 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); DynamicState.SetPatchControlPoints((uint)vertices);
} }

View file

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