Class VkFrameBoundaryEXT
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
The application can associate frame boundary information to a queue submission call by adding a VkFrameBoundaryEXT structure to the pNext chain of queue submission, VkPresentInfoKHR, or VkBindSparseInfo.
Note
The frame identifier is used to associate one or more queue submissions to a frame. It is meant to be unique within a frame lifetime, i.e. it is possible (though not recommended) to reuse frame identifiers, as long as any two frames that may have overlapping queue submissions (as in the example above) use different frame identifiers.
Since the concept of frame is application-dependent, there is no way to validate the use of frame identifier. It is good practice to use a monotonically increasing counter as the frame identifier and not reuse identifiers between frames.
The pImages and pBuffers arrays contain a list of images and buffers which store the "end result" of the frame. As the concept of frame is application-dependent, not all frames may produce their results in images or buffers, yet this is a sufficiently common case to be handled by VkFrameBoundaryEXT. Note that no extra information, such as image layout is being provided, since the images are meant to be used by tools which would already be tracking this required information. Having the possibility of passing a list of end-result images makes VkFrameBoundaryEXT as expressive as QueuePresentKHR, which is often the default frame boundary delimiter.
The application can also associate arbitrary extra information via tag data using tagName, tagSize and pTag. This extra information is typically tool-specific.
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_FRAME_BOUNDARY_EXTflagsmust be a valid combination ofVkFrameBoundaryFlagBitsEXTvalues- If
imageCountis not 0, andpImagesis notNULL,pImagesmust be a valid pointer to an array ofimageCountvalidVkImagehandles - If
bufferCountis not 0, andpBuffersis notNULL,pBuffersmust be a valid pointer to an array ofbufferCountvalidVkBufferhandles - If
tagSizeis not 0, andpTagis notNULL,pTagmust be a valid pointer to an array oftagSizebytes - Both of the elements of
pBuffers, and the elements ofpImagesthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameVkDevice
Layout
struct VkFrameBoundaryEXT {
VkStructureType sType();
void const * pNext();
VkFrameBoundaryFlagsEXT flags();
uint64_t frameID();
uint32_t imageCount();
VkImage const * pImages();
uint32_t bufferCount();
VkBuffer const * pBuffers();
uint64_t tagName();
size_t tagSize();
void const * pTag();
}-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkFrameBoundaryEXT(ByteBuffer container) Creates aVkFrameBoundaryEXTinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionintthe number of buffers the store the frame results.bufferCount(int value) Sets the specified value to thebufferCount()field.static VkFrameBoundaryEXTcalloc()Returns a newVkFrameBoundaryEXTinstance allocated withmemCalloc.static VkFrameBoundaryEXT.Buffercalloc(int capacity) Returns a newVkFrameBoundaryEXT.Bufferinstance allocated withmemCalloc.static VkFrameBoundaryEXT.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkFrameBoundaryEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkFrameBoundaryEXTcalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkFrameBoundaryEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkFrameBoundaryEXTcreate()Returns a newVkFrameBoundaryEXTinstance allocated withBufferUtils.static VkFrameBoundaryEXT.Buffercreate(int capacity) Returns a newVkFrameBoundaryEXT.Bufferinstance allocated withBufferUtils.static VkFrameBoundaryEXTcreate(long address) Returns a newVkFrameBoundaryEXTinstance for the specified memory address.static VkFrameBoundaryEXT.Buffercreate(long address, int capacity) Create aVkFrameBoundaryEXT.Bufferinstance at the specified memory.static @Nullable VkFrameBoundaryEXTcreateSafe(long address) static @Nullable VkFrameBoundaryEXT.BuffercreateSafe(long address, int capacity) intflags()a bitmask ofVkFrameBoundaryFlagBitsEXTthat can flag the last submission of a frame identifier.flags(int value) Sets the specified value to theflags()field.longframeID()the frame identifier.frameID(long value) Sets the specified value to theframeID()field.intthe number of images that store frame results.imageCount(int value) Sets the specified value to theimageCount()field.static VkFrameBoundaryEXTmalloc()Returns a newVkFrameBoundaryEXTinstance allocated withmemAlloc.static VkFrameBoundaryEXT.Buffermalloc(int capacity) Returns a newVkFrameBoundaryEXT.Bufferinstance allocated withmemAlloc.static VkFrameBoundaryEXT.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkFrameBoundaryEXT.Bufferinstance allocated on the specifiedMemoryStack.static VkFrameBoundaryEXTmalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkFrameBoundaryEXTinstance allocated on the specifiedMemoryStack.static intnbufferCount(long struct) Unsafe version ofbufferCount().static voidnbufferCount(long struct, int value) Sets the specified value to thebufferCountfield of the specifiedstruct.static intnflags(long struct) Unsafe version offlags().static voidnflags(long struct, int value) Unsafe version offlags.static longnframeID(long struct) Unsafe version offrameID().static voidnframeID(long struct, long value) Unsafe version offrameID.static intnimageCount(long struct) Unsafe version ofimageCount().static voidnimageCount(long struct, int value) Sets the specified value to theimageCountfield of the specifiedstruct.static @Nullable LongBuffernpBuffers(long struct) Unsafe version ofpBuffers.static voidnpBuffers(long struct, @Nullable LongBuffer value) Unsafe version ofpBuffers.static @Nullable LongBuffernpImages(long struct) Unsafe version ofpImages.static voidnpImages(long struct, @Nullable LongBuffer value) Unsafe version ofpImages.static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.static @Nullable ByteBuffernpTag(long struct) Unsafe version ofpTag.static voidnpTag(long struct, @Nullable ByteBuffer value) Unsafe version ofpTag.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.static longntagName(long struct) Unsafe version oftagName().static voidntagName(long struct, long value) Unsafe version oftagName.static longntagSize(long struct) Unsafe version oftagSize().static voidntagSize(long struct, long value) Sets the specified value to thetagSizefield of the specifiedstruct.@Nullable LongBufferpBuffers()a pointer to an array of VkBuffer objects with bufferCount entries.pBuffers(@Nullable LongBuffer value) Sets the address of the specifiedLongBufferto thepBuffers()field.@Nullable LongBufferpImages()a pointer to an array of VkImage objects with imageCount entries.pImages(@Nullable LongBuffer value) Sets the address of the specifiedLongBufferto thepImages()field.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.@Nullable ByteBufferpTag()a pointer to an array oftagSizebytes containing tag data.pTag(@Nullable ByteBuffer value) Sets the address of the specifiedByteBufferto thepTag()field.set(int sType, long pNext, int flags, long frameID, int imageCount, @Nullable LongBuffer pImages, int bufferCount, @Nullable LongBuffer pBuffers, long tagName, long tagSize, @Nullable ByteBuffer pTag) Initializes this struct with the specified values.set(VkFrameBoundaryEXT src) Copies the specified struct data to this struct.intsizeof()intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_FRAME_BOUNDARY_EXTvalue to thesType()field.longtagName()a numerical identifier for tag data.tagName(long value) Sets the specified value to thetagName()field.longtagSize()the number of bytes of tag data.tagSize(long value) Sets the specified value to thetagSize()field.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
FLAGS
public static final int FLAGSThe struct member offsets. -
FRAMEID
public static final int FRAMEIDThe struct member offsets. -
IMAGECOUNT
public static final int IMAGECOUNTThe struct member offsets. -
PIMAGES
public static final int PIMAGESThe struct member offsets. -
BUFFERCOUNT
public static final int BUFFERCOUNTThe struct member offsets. -
PBUFFERS
public static final int PBUFFERSThe struct member offsets. -
TAGNAME
public static final int TAGNAMEThe struct member offsets. -
TAGSIZE
public static final int TAGSIZEThe struct member offsets. -
PTAG
public static final int PTAGThe struct member offsets.
-
-
Constructor Details
-
VkFrameBoundaryEXT
Creates aVkFrameBoundaryEXTinstance at the current position of the specifiedByteBuffercontainer. 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
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkFrameBoundaryEXT>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. -
flags
public int flags()a bitmask ofVkFrameBoundaryFlagBitsEXTthat can flag the last submission of a frame identifier. -
frameID
public long frameID()the frame identifier. -
imageCount
public int imageCount()the number of images that store frame results. -
pImages
a pointer to an array of VkImage objects with imageCount entries. -
bufferCount
public int bufferCount()the number of buffers the store the frame results. -
pBuffers
a pointer to an array of VkBuffer objects with bufferCount entries. -
tagName
public long tagName()a numerical identifier for tag data. -
tagSize
public long tagSize()the number of bytes of tag data. -
pTag
a pointer to an array oftagSizebytes containing tag data. -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_FRAME_BOUNDARY_EXTvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
flags
Sets the specified value to theflags()field. -
frameID
Sets the specified value to theframeID()field. -
imageCount
Sets the specified value to theimageCount()field. -
pImages
Sets the address of the specifiedLongBufferto thepImages()field. -
bufferCount
Sets the specified value to thebufferCount()field. -
pBuffers
Sets the address of the specifiedLongBufferto thepBuffers()field. -
tagName
Sets the specified value to thetagName()field. -
tagSize
Sets the specified value to thetagSize()field. -
pTag
Sets the address of the specifiedByteBufferto thepTag()field. -
set
public VkFrameBoundaryEXT set(int sType, long pNext, int flags, long frameID, int imageCount, @Nullable LongBuffer pImages, int bufferCount, @Nullable LongBuffer pBuffers, long tagName, long tagSize, @Nullable ByteBuffer pTag) Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newVkFrameBoundaryEXTinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkFrameBoundaryEXTinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkFrameBoundaryEXTinstance allocated withBufferUtils. -
create
Returns a newVkFrameBoundaryEXTinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkFrameBoundaryEXT.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkFrameBoundaryEXT.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkFrameBoundaryEXT.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkFrameBoundaryEXT.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
malloc
Returns a newVkFrameBoundaryEXTinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkFrameBoundaryEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
Returns a newVkFrameBoundaryEXT.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
Returns a newVkFrameBoundaryEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType(). -
npNext
public static long npNext(long struct) Unsafe version ofpNext(). -
nflags
public static int nflags(long struct) Unsafe version offlags(). -
nframeID
public static long nframeID(long struct) Unsafe version offrameID(). -
nimageCount
public static int nimageCount(long struct) Unsafe version ofimageCount(). -
npImages
Unsafe version ofpImages. -
nbufferCount
public static int nbufferCount(long struct) Unsafe version ofbufferCount(). -
npBuffers
Unsafe version ofpBuffers. -
ntagName
public static long ntagName(long struct) Unsafe version oftagName(). -
ntagSize
public static long ntagSize(long struct) Unsafe version oftagSize(). -
npTag
Unsafe version ofpTag. -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext. -
nflags
public static void nflags(long struct, int value) Unsafe version offlags. -
nframeID
public static void nframeID(long struct, long value) Unsafe version offrameID. -
nimageCount
public static void nimageCount(long struct, int value) Sets the specified value to theimageCountfield of the specifiedstruct. -
npImages
Unsafe version ofpImages. -
nbufferCount
public static void nbufferCount(long struct, int value) Sets the specified value to thebufferCountfield of the specifiedstruct. -
npBuffers
Unsafe version ofpBuffers. -
ntagName
public static void ntagName(long struct, long value) Unsafe version oftagName. -
ntagSize
public static void ntagSize(long struct, long value) Sets the specified value to thetagSizefield of the specifiedstruct. -
npTag
Unsafe version ofpTag.
-