Avoid changing feedback loop aspect if extension is not supported prevents failed pipeline compiles (or seemingly incompatible)
This commit is contained in:
parent
3f900e6fa0
commit
09b8095584
3 changed files with 10 additions and 1 deletions
|
@ -1721,6 +1721,11 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
private bool UpdateFeedbackLoop()
|
private bool UpdateFeedbackLoop()
|
||||||
{
|
{
|
||||||
|
if (!Gd.Capabilities.SupportsAttachmentFeedbackLoop)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
List<TextureView> hazards = _descriptorSetUpdater.FeedbackLoopHazards;
|
List<TextureView> hazards = _descriptorSetUpdater.FeedbackLoopHazards;
|
||||||
|
|
||||||
if ((hazards?.Count ?? 0) > 0)
|
if ((hazards?.Count ?? 0) > 0)
|
||||||
|
@ -1765,7 +1770,7 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stencil test being enabled doesn't necessarily mean a write, but it's not critical to check.
|
// Stencil test being enabled doesn't necessarily mean a write, but it's not critical to check.
|
||||||
_passWritesDepthStencil |= (_newState.DepthTestEnable && _newState.DepthWriteEnable) || _newState.StencilTestEnable;
|
_passWritesDepthStencil |= _supportExtDynamic ? (DynamicState.DepthTestEnable && DynamicState.DepthWriteEnable) || _newState.StencilTestEnable : (_newState.DepthTestEnable && _newState.DepthWriteEnable) || _newState.StencilTestEnable;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool RecreateGraphicsPipelineIfNeeded()
|
private bool RecreateGraphicsPipelineIfNeeded()
|
||||||
|
|
|
@ -166,6 +166,8 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
|
|
||||||
pipeline.DepthClampEnable = state.DepthClampEnable;
|
pipeline.DepthClampEnable = state.DepthClampEnable;
|
||||||
|
|
||||||
|
pipeline.FeedbackLoopAspects = FeedbackLoopAspects.None;
|
||||||
|
|
||||||
pipeline.DepthMode = state.DepthMode == DepthMode.MinusOneToOne;
|
pipeline.DepthMode = state.DepthMode == DepthMode.MinusOneToOne;
|
||||||
|
|
||||||
pipeline.HasDepthStencil = state.DepthStencilEnable;
|
pipeline.HasDepthStencil = state.DepthStencilEnable;
|
||||||
|
|
|
@ -273,6 +273,8 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
PolygonMode = PolygonMode.Fill;
|
PolygonMode = PolygonMode.Fill;
|
||||||
DepthBoundsTestEnable = false;
|
DepthBoundsTestEnable = false;
|
||||||
|
|
||||||
|
FeedbackLoopAspects = FeedbackLoopAspects.None;
|
||||||
|
|
||||||
_supportsExtDynamicState = supportsExtDynamicState;
|
_supportsExtDynamicState = supportsExtDynamicState;
|
||||||
_supportsExtDynamicState2 = extendedDynamicState2;
|
_supportsExtDynamicState2 = extendedDynamicState2;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue