Top Description Inners Fields Constructors Methods
org.lwjgl.vulkan

public Class VkBufferMemoryBarrier2

extends Struct<VkBufferMemoryBarrier2>
implements NativeResource
Class Inheritance
All Implemented Interfaces
org.lwjgl.system.NativeResource, java.lang.AutoCloseable
Known Direct Subclasses
org.lwjgl.vulkan.VkBufferMemoryBarrier2KHR
Imports
javax.annotation.*, java.nio.*, org.lwjgl.*, org.lwjgl.system.*

Structure specifying a buffer memory barrier.
Description

This structure defines a memory dependency limited to a range of a buffer, and can define a queue family transfer operation for that range.

The first synchronization scope and access scope described by this structure include only operations and memory accesses specified by srcStageMask and srcAccessMask.

The second synchronization scope and access scope described by this structure include only operations and memory accesses specified by dstStageMask and dstAccessMask.

Both access scopes are limited to only memory accesses to buffer in the range defined by offset and size.

If buffer was created with SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, this memory barrier defines a queue family transfer operation. When executed on a queue in the family identified by srcQueueFamilyIndex, this barrier defines a queue family release operation for the specified buffer range, and the second synchronization and access scopes do not synchronize operations on that queue. When executed on a queue in the family identified by dstQueueFamilyIndex, this barrier defines a queue family acquire operation for the specified buffer range, and the first synchronization and access scopes do not synchronize operations on that queue.

A queue family transfer operation is also defined if the values are not equal, and either is one of the special queue family values reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer. A queue family release operation is defined when dstQueueFamilyIndex is one of those values, and a queue family acquire operation is defined when srcQueueFamilyIndex is one of those values.

Valid Usage
Valid Usage (Implicit)
See Also

VkDependencyInfo

Layout


struct VkBufferMemoryBarrier2 {
    VkStructureType sType;
    void const * pNext;
    VkPipelineStageFlags2 srcStageMask;
    VkAccessFlags2 srcAccessMask;
    VkPipelineStageFlags2 dstStageMask;
    VkAccessFlags2 dstAccessMask;
    uint32_t srcQueueFamilyIndex;
    uint32_t dstQueueFamilyIndex;
    VkBuffer buffer;
    VkDeviceSize offset;
    VkDeviceSize size;
}

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
public static final int
ALIGNOF

The struct alignment in bytes.

public static final int
BUFFER

The struct member offsets.

public static final int
DSTACCESSMASK

The struct member offsets.

public static final int
DSTQUEUEFAMILYINDEX

The struct member offsets.

public static final int
DSTSTAGEMASK

The struct member offsets.

public static final int
OFFSET

The struct member offsets.

public static final int
PNEXT

The struct member offsets.

public static final int
SIZE

The struct member offsets.

public static final int
SIZEOF

The struct size in bytes.

public static final int
SRCACCESSMASK

The struct member offsets.

public static final int
SRCQUEUEFAMILYINDEX

The struct member offsets.

public static final int
SRCSTAGEMASK

The struct member offsets.

public static final int
STYPE

The struct member offsets.

Inherited from org.lwjgl.system.Struct:
containerDEFAULT_ALIGN_ASDEFAULT_PACK_ALIGNMENT

Constructor Summary

AccessConstructor and Description
protected
VkBufferMemoryBarrier2(long address, ByteBuffer container)

public
VkBufferMemoryBarrier2(ByteBuffer container)

Creates a VkBufferMemoryBarrier2 instance at the current position of the specified ByteBuffer container.

Method Summary

Modifier and TypeMethod and Description
public long
buffer()

a handle to the buffer whose backing memory is affected by the barrier.

public VkBufferMemoryBarrier2
buffer(long value)

Sets the specified value to the buffer field.

public static VkBufferMemoryBarrier2
calloc()

Returns a new VkBufferMemoryBarrier2 instance allocated with memCalloc.

public static VkBufferMemoryBarrier2.Buffer
calloc(int
the buffer capacity
capacity
)

Returns a new VkBufferMemoryBarrier2.Buffer instance allocated with memCalloc.

public static VkBufferMemoryBarrier2
calloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new VkBufferMemoryBarrier2 instance allocated on the specified MemoryStack and initializes all its bits to zero.

public static VkBufferMemoryBarrier2.Buffer
calloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new VkBufferMemoryBarrier2.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.

protected VkBufferMemoryBarrier2
create(long
the struct memory address
address
,
ByteBuffer
an optional container buffer, to be referenced strongly by the struct instance.
container
)

Implements abstract org.lwjgl.system.Struct.create.

Similar to the constructor, but returns the exact type of the Struct subclass.
public static VkBufferMemoryBarrier2
create()

Returns a new VkBufferMemoryBarrier2 instance allocated with BufferUtils.

public static VkBufferMemoryBarrier2
create(long address)

Returns a new VkBufferMemoryBarrier2 instance for the specified memory address.

public static VkBufferMemoryBarrier2.Buffer
create(int
the buffer capacity
capacity
)

Returns a new VkBufferMemoryBarrier2.Buffer instance allocated with BufferUtils.

public static VkBufferMemoryBarrier2.Buffer
create(long
the memory address
address
,
int
the buffer capacity
capacity
)

Create a VkBufferMemoryBarrier2.Buffer instance at the specified memory.

public static VkBufferMemoryBarrier2
createSafe(long address)

Like create, but returns null if address is NULL.

public static VkBufferMemoryBarrier2.Buffer
createSafe(long address, int capacity)

Like create, but returns null if address is NULL.

public long
dstAccessMask()

a VkAccessFlags2 mask of access flags to be included in the second access scope.

public VkBufferMemoryBarrier2
dstAccessMask(long value)

Sets the specified value to the dstAccessMask field.

public int
dstQueueFamilyIndex()

the destination queue family for a queue family ownership transfer.

public VkBufferMemoryBarrier2
dstQueueFamilyIndex(int value)

Sets the specified value to the dstQueueFamilyIndex field.

public long
dstStageMask()

a VkPipelineStageFlags2 mask of pipeline stages to be included in the second synchronization scope.

public VkBufferMemoryBarrier2
dstStageMask(long value)

Sets the specified value to the dstStageMask field.

public static VkBufferMemoryBarrier2
malloc()

Returns a new VkBufferMemoryBarrier2 instance allocated with memAlloc.

public static VkBufferMemoryBarrier2.Buffer
malloc(int
the buffer capacity
capacity
)

Returns a new VkBufferMemoryBarrier2.Buffer instance allocated with memAlloc.

public static VkBufferMemoryBarrier2
malloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new VkBufferMemoryBarrier2 instance allocated on the specified MemoryStack.

public static VkBufferMemoryBarrier2.Buffer
malloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new VkBufferMemoryBarrier2.Buffer instance allocated on the specified MemoryStack.

public static long
nbuffer(long struct)

Unsafe version of buffer.

public static void
nbuffer(long struct, long value)

Unsafe version of buffer.

public static long
ndstAccessMask(long struct)

Unsafe version of dstAccessMask.

public static void
ndstAccessMask(long struct, long value)

Unsafe version of dstAccessMask.

public static int
ndstQueueFamilyIndex(long struct)

Unsafe version of dstQueueFamilyIndex.

public static void
ndstQueueFamilyIndex(long struct, int value)

Unsafe version of dstQueueFamilyIndex.

public static long
ndstStageMask(long struct)

Unsafe version of dstStageMask.

public static void
ndstStageMask(long struct, long value)

Unsafe version of dstStageMask.

public static long
noffset(long struct)

Unsafe version of offset.

public static void
noffset(long struct, long value)

Unsafe version of offset.

public static long
npNext(long struct)

Unsafe version of pNext.

public static void
npNext(long struct, long value)

Unsafe version of pNext.

public static long
nsize(long struct)

Unsafe version of size.

public static void
nsize(long struct, long value)

Unsafe version of size.

public static long
nsrcAccessMask(long struct)

Unsafe version of srcAccessMask.

public static void
nsrcAccessMask(long struct, long value)

Unsafe version of srcAccessMask.

public static int
nsrcQueueFamilyIndex(long struct)

Unsafe version of srcQueueFamilyIndex.

public static void
nsrcQueueFamilyIndex(long struct, int value)

Unsafe version of srcQueueFamilyIndex.

public static long
nsrcStageMask(long struct)

Unsafe version of srcStageMask.

public static void
nsrcStageMask(long struct, long value)

Unsafe version of srcStageMask.

public static int
nsType(long struct)

Unsafe version of sType.

public static void
nsType(long struct, int value)

Unsafe version of sType.

public long
offset()

an offset in bytes into the backing memory for buffer; this is relative to the base offset as bound to the buffer (see BindBufferMemory).

public VkBufferMemoryBarrier2
offset(long value)

Sets the specified value to the offset field.

public long
pNext()

NULL or a pointer to a structure extending this structure.

public VkBufferMemoryBarrier2
pNext(long value)

Sets the specified value to the pNext field.

public VkBufferMemoryBarrier2
pNext(VkExternalMemoryAcquireUnmodifiedEXT value)

Prepends the specified VkExternalMemoryAcquireUnmodifiedEXT value to the pNext chain.

public VkBufferMemoryBarrier2
set(int sType, long pNext, long srcStageMask, long srcAccessMask, long dstStageMask, long dstAccessMask, int srcQueueFamilyIndex, int dstQueueFamilyIndex, long buffer, long offset, long size)

Initializes this struct with the specified values.

public VkBufferMemoryBarrier2

Returns:

this struct
set
(VkBufferMemoryBarrier2
the source struct
src
)

Copies the specified struct data to this struct.

public long
size()

a size in bytes of the affected area of backing memory for buffer, or WHOLE_SIZE to use the range from offset to the end of the buffer.

public VkBufferMemoryBarrier2
size(long value)

Sets the specified value to the size field.

public int
sizeof()

Implements abstract org.lwjgl.system.Struct.sizeof.

Returns sizeof(struct).
public long
srcAccessMask()

a VkAccessFlags2 mask of access flags to be included in the first access scope.

public VkBufferMemoryBarrier2
srcAccessMask(long value)

Sets the specified value to the srcAccessMask field.

public int
srcQueueFamilyIndex()

the source queue family for a queue family ownership transfer.

public VkBufferMemoryBarrier2
srcQueueFamilyIndex(int value)

Sets the specified value to the srcQueueFamilyIndex field.

public long
srcStageMask()

a VkPipelineStageFlags2 mask of pipeline stages to be included in the first synchronization scope.

public VkBufferMemoryBarrier2
srcStageMask(long value)

Sets the specified value to the srcStageMask field.

public int
sType()

a VkStructureType value identifying this structure.

public VkBufferMemoryBarrier2
sType(int value)

Sets the specified value to the sType field.

public VkBufferMemoryBarrier2
Inherited from org.lwjgl.system.Struct:
__array__array__array__checkContainer__checkMalloc__create__getContainer__getContainer__member__member__member__padding__padding__struct__struct__union__unionclearfreeisNullvalidate