Class VkBufferMemoryBarrier

All Implemented Interfaces:
AutoCloseable, NativeResource, Pointer

public class VkBufferMemoryBarrier extends Struct<VkBufferMemoryBarrier> implements NativeResource
Structure specifying a buffer memory barrier.
Description

The first access scope is limited to access to memory through the specified buffer range, via access types in the source access mask specified by srcAccessMask. If srcAccessMask includes ACCESS_HOST_WRITE_BIT, a memory domain operation is performed where available memory in the host domain is also made available to the device domain.

The second access scope is limited to access to memory through the specified buffer range, via access types in the destination access mask specified by dstAccessMask. If dstAccessMask includes ACCESS_HOST_WRITE_BIT or ACCESS_HOST_READ_BIT, a memory domain operation is performed where available memory in the device domain is also made available to the host domain.

Note

When MEMORY_PROPERTY_HOST_COHERENT_BIT is used, available memory in host domain is automatically made visible to host domain, and any host write is automatically made available to host domain.

If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, and srcQueueFamilyIndex is equal to the current queue family, then the memory barrier defines a queue family release operation for the specified buffer range, and the second access scope includes no access, as if dstAccessMask was 0.

If dstQueueFamilyIndex is not equal to srcQueueFamilyIndex, and dstQueueFamilyIndex is equal to the current queue family, then the memory barrier defines a queue family acquire operation for the specified buffer range, and the first access scope includes no access, as if srcAccessMask was 0.

Valid Usage
Valid Usage (Implicit)
See Also

CmdPipelineBarrier, CmdWaitEvents

Layout


 struct VkBufferMemoryBarrier {
     VkStructureType sType();
     void const * pNext();
     VkAccessFlags srcAccessMask();
     VkAccessFlags dstAccessMask();
     uint32_t srcQueueFamilyIndex();
     uint32_t dstQueueFamilyIndex();
     VkBuffer buffer();
     VkDeviceSize offset();
     VkDeviceSize size();
 }