aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/PipelineConverter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/PipelineConverter.cs')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/PipelineConverter.cs33
1 files changed, 15 insertions, 18 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineConverter.cs b/src/Ryujinx.Graphics.Vulkan/PipelineConverter.cs
index 7d124c83..89ce10b0 100644
--- a/src/Ryujinx.Graphics.Vulkan/PipelineConverter.cs
+++ b/src/Ryujinx.Graphics.Vulkan/PipelineConverter.cs
@@ -9,13 +9,6 @@ namespace Ryujinx.Graphics.Vulkan
{
static class PipelineConverter
{
- private const AccessFlags SubpassAccessMask =
- AccessFlags.MemoryReadBit |
- AccessFlags.MemoryWriteBit |
- AccessFlags.ShaderReadBit |
- AccessFlags.ColorAttachmentWriteBit |
- AccessFlags.DepthStencilAttachmentWriteBit;
-
public static unsafe DisposableRenderPass ToRenderPass(this ProgramPipelineState state, VulkanRenderer gd, Device device)
{
const int MaxAttachments = Constants.MaxRenderTargets + 1;
@@ -108,7 +101,7 @@ namespace Ryujinx.Graphics.Vulkan
}
}
- var subpassDependency = CreateSubpassDependency();
+ var subpassDependency = CreateSubpassDependency(gd);
fixed (AttachmentDescription* pAttachmentDescs = attachmentDescs)
{
@@ -129,29 +122,33 @@ namespace Ryujinx.Graphics.Vulkan
}
}
- public static SubpassDependency CreateSubpassDependency()
+ public static SubpassDependency CreateSubpassDependency(VulkanRenderer gd)
{
+ var (access, stages) = BarrierBatch.GetSubpassAccessSuperset(gd);
+
return new SubpassDependency(
0,
0,
- PipelineStageFlags.AllGraphicsBit,
- PipelineStageFlags.AllGraphicsBit,
- SubpassAccessMask,
- SubpassAccessMask,
+ stages,
+ stages,
+ access,
+ access,
0);
}
- public unsafe static SubpassDependency2 CreateSubpassDependency2()
+ public unsafe static SubpassDependency2 CreateSubpassDependency2(VulkanRenderer gd)
{
+ var (access, stages) = BarrierBatch.GetSubpassAccessSuperset(gd);
+
return new SubpassDependency2(
StructureType.SubpassDependency2,
null,
0,
0,
- PipelineStageFlags.AllGraphicsBit,
- PipelineStageFlags.AllGraphicsBit,
- SubpassAccessMask,
- SubpassAccessMask,
+ stages,
+ stages,
+ access,
+ access,
0);
}