Package org.lwjgl.vulkan
Class VkMemoryDedicatedRequirements
java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkMemoryDedicatedRequirements>
org.lwjgl.vulkan.VkMemoryDedicatedRequirements
- All Implemented Interfaces:
AutoCloseable
,NativeResource
,Pointer
- Direct Known Subclasses:
VkMemoryDedicatedRequirementsKHR
public class VkMemoryDedicatedRequirements
extends Struct<VkMemoryDedicatedRequirements>
implements NativeResource
Structure describing dedicated allocation requirements of buffer and image resources.
Description
To determine the dedicated allocation requirements of a buffer or image resource, add a VkMemoryDedicatedRequirements
structure to the pNext
chain of the VkMemoryRequirements2
structure passed as the pMemoryRequirements
parameter of GetBufferMemoryRequirements2
or GetImageMemoryRequirements2
, respectively.
Constraints on the values returned for buffer resources are:
requiresDedicatedAllocation
may beTRUE
if thepNext
chain ofVkBufferCreateInfo
for the call tovkCreateBuffer
used to create the buffer being queried included aVkExternalMemoryBufferCreateInfo
structure, and any of the handle types specified inVkExternalMemoryBufferCreateInfo
::handleTypes
requires dedicated allocation, as reported byGetPhysicalDeviceExternalBufferProperties
inVkExternalBufferProperties
::externalMemoryProperties.externalMemoryFeatures
. Otherwise,requiresDedicatedAllocation
will beFALSE
.- When the implementation sets
requiresDedicatedAllocation
toTRUE
, it must also setprefersDedicatedAllocation
toTRUE
. - If
BUFFER_CREATE_SPARSE_BINDING_BIT
was set inVkBufferCreateInfo
::flags
whenbuffer
was created, then bothprefersDedicatedAllocation
andrequiresDedicatedAllocation
will beFALSE
.
Constraints on the values returned for image resources are:
requiresDedicatedAllocation
may beTRUE
if thepNext
chain ofVkImageCreateInfo
for the call toCreateImage
used to create the image being queried included aVkExternalMemoryImageCreateInfo
structure, and any of the handle types specified inVkExternalMemoryImageCreateInfo
::handleTypes
requires dedicated allocation, as reported byGetPhysicalDeviceImageFormatProperties2
inVkExternalImageFormatProperties
::externalMemoryProperties.externalMemoryFeatures
.requiresDedicatedAllocation
may beTRUE
if the image’s tiling isIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
.requiresDedicatedAllocation
will otherwise beFALSE
- If
IMAGE_CREATE_SPARSE_BINDING_BIT
was set inVkImageCreateInfo
::flags
whenimage
was created, then bothprefersDedicatedAllocation
andrequiresDedicatedAllocation
will beFALSE
.
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
Layout
struct VkMemoryDedicatedRequirements {
VkStructureType sType()
;
void * pNext()
;
VkBool32 prefersDedicatedAllocation()
;
VkBool32 requiresDedicatedAllocation()
;
}
-
Nested Class Summary
Nested classes/interfaces inherited from class org.lwjgl.system.Struct
Struct.StructValidation
Nested classes/interfaces inherited from interface org.lwjgl.system.Pointer
Pointer.Default
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The struct alignment in bytes.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct size in bytes.static final int
The struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE
-
Constructor Summary
ConstructorDescriptionVkMemoryDedicatedRequirements
(ByteBuffer container) Creates aVkMemoryDedicatedRequirements
instance at the current position of the specifiedByteBuffer
container. -
Method Summary
Modifier and TypeMethodDescriptioncalloc()
Returns a newVkMemoryDedicatedRequirements
instance allocated withmemCalloc
.calloc
(int capacity) Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated withmemCalloc
.calloc
(int capacity, MemoryStack stack) Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.calloc
(MemoryStack stack) Returns a newVkMemoryDedicatedRequirements
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.Deprecated.callocStack
(int capacity) Deprecated.callocStack
(int capacity, MemoryStack stack) Deprecated.callocStack
(MemoryStack stack) Deprecated.create()
Returns a newVkMemoryDedicatedRequirements
instance allocated withBufferUtils
.create
(int capacity) Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated withBufferUtils
.create
(long address) Returns a newVkMemoryDedicatedRequirements
instance for the specified memory address.create
(long address, int capacity) Create aVkMemoryDedicatedRequirements.Buffer
instance at the specified memory.createSafe
(long address) createSafe
(long address, int capacity) malloc()
Returns a newVkMemoryDedicatedRequirements
instance allocated withmemAlloc
.malloc
(int capacity) Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated withmemAlloc
.malloc
(int capacity, MemoryStack stack) Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated on the specifiedMemoryStack
.malloc
(MemoryStack stack) Returns a newVkMemoryDedicatedRequirements
instance allocated on the specifiedMemoryStack
.Deprecated.mallocStack
(int capacity) Deprecated.mallocStack
(int capacity, MemoryStack stack) Deprecated.mallocStack
(MemoryStack stack) Deprecated.static long
npNext
(long struct) Unsafe version ofpNext()
.static void
npNext
(long struct, long value) Unsafe version ofpNext
.static int
nprefersDedicatedAllocation
(long struct) Unsafe version ofprefersDedicatedAllocation()
.static int
nrequiresDedicatedAllocation
(long struct) Unsafe version ofrequiresDedicatedAllocation()
.static int
nsType
(long struct) Unsafe version ofsType()
.static void
nsType
(long struct, int value) Unsafe version ofsType
.long
pNext()
NULL
or a pointer to a structure extending this structure.pNext
(long value) Sets the specified value to thepNext()
field.boolean
specifies that the implementation would prefer a dedicated allocation for this resource.boolean
specifies that a dedicated allocation is required for this resource.set
(int sType, long pNext) Initializes this struct with the specified values.Copies the specified struct data to this struct.int
sizeof()
Returnssizeof(struct)
.int
sType()
aVkStructureType
value identifying this structure.sType
(int value) Sets the specified value to thesType()
field.Sets theSTRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
value to thesType()
field.Methods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toString
Methods 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. -
PREFERSDEDICATEDALLOCATION
public static final int PREFERSDEDICATEDALLOCATIONThe struct member offsets. -
REQUIRESDEDICATEDALLOCATION
public static final int REQUIRESDEDICATEDALLOCATIONThe struct member offsets.
-
-
Constructor Details
-
VkMemoryDedicatedRequirements
Creates aVkMemoryDedicatedRequirements
instance at the current position of the specifiedByteBuffer
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
-
sizeof
public int sizeof()Description copied from class:Struct
Returnssizeof(struct)
.- Specified by:
sizeof
in classStruct<VkMemoryDedicatedRequirements>
-
sType
public int sType()aVkStructureType
value identifying this structure. -
pNext
public long pNext()NULL
or a pointer to a structure extending this structure. -
prefersDedicatedAllocation
public boolean prefersDedicatedAllocation()specifies that the implementation would prefer a dedicated allocation for this resource. The application is still free to suballocate the resource but it may get better performance if a dedicated allocation is used. -
requiresDedicatedAllocation
public boolean requiresDedicatedAllocation()specifies that a dedicated allocation is required for this resource. -
sType
Sets the specified value to thesType()
field. -
sType$Default
Sets theSTRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
value to thesType()
field. -
pNext
Sets the specified value to thepNext()
field. -
set
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 newVkMemoryDedicatedRequirements
instance allocated withmemAlloc
. The instance must be explicitly freed. -
calloc
Returns a newVkMemoryDedicatedRequirements
instance allocated withmemCalloc
. The instance must be explicitly freed. -
create
Returns a newVkMemoryDedicatedRequirements
instance allocated withBufferUtils
. -
create
Returns a newVkMemoryDedicatedRequirements
instance for the specified memory address. -
createSafe
-
malloc
Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated withmemAlloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
calloc
Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated withmemCalloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
create
Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated withBufferUtils
.- Parameters:
capacity
- the buffer capacity
-
create
Create aVkMemoryDedicatedRequirements.Buffer
instance at the specified memory.- Parameters:
address
- the memory addresscapacity
- the buffer capacity
-
createSafe
-
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)
instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)
instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)
instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)
instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)
instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)
instead. -
mallocStack
@Deprecated public static VkMemoryDedicatedRequirements.Buffer mallocStack(int capacity, MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)
instead. -
callocStack
@Deprecated public static VkMemoryDedicatedRequirements.Buffer callocStack(int capacity, MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)
instead. -
malloc
Returns a newVkMemoryDedicatedRequirements
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocate
-
calloc
Returns a newVkMemoryDedicatedRequirements
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocate
-
malloc
Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated on the specifiedMemoryStack
.- Parameters:
capacity
- the buffer capacitystack
- the stack from which to allocate
-
calloc
Returns a newVkMemoryDedicatedRequirements.Buffer
instance allocated on the specifiedMemoryStack
and 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()
. -
nprefersDedicatedAllocation
public static int nprefersDedicatedAllocation(long struct) Unsafe version ofprefersDedicatedAllocation()
. -
nrequiresDedicatedAllocation
public static int nrequiresDedicatedAllocation(long struct) Unsafe version ofrequiresDedicatedAllocation()
. -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType
. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext
.
-