Skip to content

Commit

Permalink
Merge pull request #533 from opticfluorine/vk-barrier-validation
Browse files Browse the repository at this point in the history
Fix Vulkan validation issue with uniform shader memory barriers
  • Loading branch information
smoogipoo committed Mar 30, 2024
2 parents 02d2b64 + afcd18e commit 37ab5ee
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/Veldrid/Vk/VkCommandList.cs
Expand Up @@ -760,13 +760,15 @@ private protected override void UpdateBufferCore(DeviceBuffer buffer, uint buffe
VkMemoryBarrier barrier;
barrier.sType = VkStructureType.MemoryBarrier;
barrier.srcAccessMask = VkAccessFlags.TransferWrite;
barrier.dstAccessMask = needToProtectUniform
? VkAccessFlags.VertexAttributeRead | VkAccessFlags.UniformRead
: VkAccessFlags.VertexAttributeRead;
barrier.dstAccessMask = needToProtectUniform ? VkAccessFlags.UniformRead : VkAccessFlags.VertexAttributeRead;
barrier.pNext = null;
vkCmdPipelineBarrier(
_cb,
VkPipelineStageFlags.Transfer, VkPipelineStageFlags.VertexInput,
VkPipelineStageFlags.Transfer, needToProtectUniform ?
VkPipelineStageFlags.VertexShader | VkPipelineStageFlags.ComputeShader |
VkPipelineStageFlags.FragmentShader | VkPipelineStageFlags.GeometryShader |
VkPipelineStageFlags.TessellationControlShader | VkPipelineStageFlags.TessellationEvaluationShader
: VkPipelineStageFlags.VertexInput,
VkDependencyFlags.None,
1, ref barrier,
0, null,
Expand Down

0 comments on commit 37ab5ee

Please sign in to comment.