Use dynamic state properly, cleanup.

This commit is contained in:
riperiperi 2024-08-30 20:14:23 +01:00
parent aa10bc5c75
commit bd0737ba51
4 changed files with 4 additions and 15 deletions

View file

@ -55,20 +55,6 @@ namespace Ryujinx.Graphics.Vulkan
stages |= PipelineStageFlags.TransformFeedbackBitExt;
}
if (!gd.IsTBDR)
{
// Desktop GPUs can transform image barriers into memory barriers.
// ...but these cause VUID-VkSubpassDependency-srcSubpass-06809
/*
access |= AccessFlags.DepthStencilAttachmentWriteBit | AccessFlags.ColorAttachmentWriteBit;
access |= AccessFlags.DepthStencilAttachmentReadBit | AccessFlags.ColorAttachmentReadBit;
stages |= PipelineStageFlags.EarlyFragmentTestsBit | PipelineStageFlags.LateFragmentTestsBit;
stages |= PipelineStageFlags.ColorAttachmentOutputBit;
*/
}
return (access, stages);
}

View file

@ -126,6 +126,7 @@ namespace Ryujinx.Graphics.Vulkan
SupportsHostImportedMemory = supportsHostImportedMemory;
SupportsDepthClipControl = supportsDepthClipControl;
SupportsAttachmentFeedbackLoop = supportsAttachmentFeedbackLoop;
SupportsDynamicAttachmentFeedbackLoop = supportsDynamicAttachmentFeedbackLoop;
SubgroupSize = subgroupSize;
SupportedSampleCounts = supportedSampleCounts;
PortabilitySubset = portabilitySubset;

View file

@ -1566,7 +1566,8 @@ namespace Ryujinx.Graphics.Vulkan
foreach (TextureView view in hazards)
{
// TODO: enforce layout
// May need to enforce feedback loop layout here in the future.
// Though technically, it should always work with the general layout.
if (view.Info.Format.IsDepthOrStencil())
{

View file

@ -45,6 +45,7 @@ namespace Ryujinx.Graphics.Vulkan
"VK_KHR_8bit_storage",
"VK_KHR_maintenance2",
"VK_EXT_attachment_feedback_loop_layout",
"VK_EXT_attachment_feedback_loop_dynamic_state",
};
private static readonly string[] _requiredExtensions = {