aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/PipelineBase.cs')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/PipelineBase.cs16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs
index 54b67f35..156b3db1 100644
--- a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs
+++ b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs
@@ -149,10 +149,22 @@ namespace Ryujinx.Graphics.Vulkan
DstAccessMask = AccessFlags.MemoryReadBit | AccessFlags.MemoryWriteBit,
};
+ PipelineStageFlags pipelineStageFlags = PipelineStageFlags.VertexShaderBit | PipelineStageFlags.FragmentShaderBit;
+
+ if (Gd.Capabilities.SupportsGeometryShader)
+ {
+ pipelineStageFlags |= PipelineStageFlags.GeometryShaderBit;
+ }
+
+ if (Gd.Capabilities.SupportsTessellationShader)
+ {
+ pipelineStageFlags |= PipelineStageFlags.TessellationControlShaderBit | PipelineStageFlags.TessellationEvaluationShaderBit;
+ }
+
Gd.Api.CmdPipelineBarrier(
CommandBuffer,
- PipelineStageFlags.FragmentShaderBit,
- PipelineStageFlags.FragmentShaderBit,
+ pipelineStageFlags,
+ pipelineStageFlags,
0,
1,
memoryBarrier,