Class VkBufferMemoryBarrier

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkBufferMemoryBarrier>
org.lwjgl.vulkan.VkBufferMemoryBarrier
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class VkBufferMemoryBarrier extends org.lwjgl.system.Struct<VkBufferMemoryBarrier> implements org.lwjgl.system.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 synchronization scope of the calling command does not apply to this operation.

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 synchronization scope of the calling command does not apply to this operation.

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();
 }
  • Field Details

    • SIZEOF

      public static final int SIZEOF
      The struct size in bytes.
    • ALIGNOF

      public static final int ALIGNOF
      The struct alignment in bytes.
    • STYPE

      public static final int STYPE
      The struct member offsets.
    • PNEXT

      public static final int PNEXT
      The struct member offsets.
    • SRCACCESSMASK

      public static final int SRCACCESSMASK
      The struct member offsets.
    • DSTACCESSMASK

      public static final int DSTACCESSMASK
      The struct member offsets.
    • SRCQUEUEFAMILYINDEX

      public static final int SRCQUEUEFAMILYINDEX
      The struct member offsets.
    • DSTQUEUEFAMILYINDEX

      public static final int DSTQUEUEFAMILYINDEX
      The struct member offsets.
    • BUFFER

      public static final int BUFFER
      The struct member offsets.
    • OFFSET

      public static final int OFFSET
      The struct member offsets.
    • SIZE

      public static final int SIZE
      The struct member offsets.
  • Constructor Details

    • VkBufferMemoryBarrier

      public VkBufferMemoryBarrier(ByteBuffer container)
      Creates a VkBufferMemoryBarrier instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

      The created instance holds a strong reference to the container object.

  • Method Details