Class VkBindImageMemoryDeviceGroupInfo
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkBindImageMemoryDeviceGroupInfo
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,org.lwjgl.system.NativeResource
,org.lwjgl.system.Pointer
- Direct Known Subclasses:
VkBindImageMemoryDeviceGroupInfoKHR
public class VkBindImageMemoryDeviceGroupInfo extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResource
Structure specifying device within a group to bind to.Description
The
VkBindImageMemoryDeviceGroupInfo
structure is defined as:sType
is the type of this structure.pNext
isNULL
or a pointer to an extension-specific structure.deviceIndexCount
is the number of elements inpDeviceIndices
.pDeviceIndices
is a pointer to an array of device indices.splitInstanceBindRegionCount
is the number of elements inpSplitInstanceBindRegions
.pSplitInstanceBindRegions
is a pointer to an array of rectangles describing which regions of the image are attached to each instance of memory.
If
deviceIndexCount
is greater than zero, then on device indexi
image
is attached to the instance of the memory on the physical device with device indexpDeviceIndices[i]
.Let
N
be the number of physical devices in the logical device. IfsplitInstanceBindRegionCount
is greater than zero, thenpSplitInstanceBindRegions
is an array ofN2
rectangles, where the image region specified by the rectangle at elementi*N+j
in resource instancei
is bound to the memory instancej
. The blocks of the memory that are bound to each sparse image block region use an offset in memory, relative tomemoryOffset
, computed as if the whole image were being bound to a contiguous range of memory. In other words, horizontally adjacent image blocks use consecutive blocks of memory, vertically adjacent image blocks are separated by the number of bytes per block multiplied by the width in blocks ofimage
, and the block at(0,0)
corresponds to memory starting atmemoryOffset
.If
splitInstanceBindRegionCount
anddeviceIndexCount
are zero and the memory comes from a memory heap with theMEMORY_HEAP_MULTI_INSTANCE_BIT
bit set, then it is as ifpDeviceIndices
contains consecutive indices from zero to the number of physical devices in the logical device, minus one. In other words, by default each physical device attaches to its own instance of the memory.If
splitInstanceBindRegionCount
anddeviceIndexCount
are zero and the memory comes from a memory heap without theMEMORY_HEAP_MULTI_INSTANCE_BIT
bit set, then it is as ifpDeviceIndices
contains an array of zeros. In other words, by default each physical device attaches to instance zero.Valid Usage
- At least one of
deviceIndexCount
andsplitInstanceBindRegionCount
must be zero. deviceIndexCount
must either be zero or equal to the number of physical devices in the logical device- All elements of
pDeviceIndices
must be valid device indices. splitInstanceBindRegionCount
must either be zero or equal to the number of physical devices in the logical device squared- Elements of
pSplitInstanceBindRegions
that correspond to the same instance of an image must not overlap. - The
offset.x
member of any element ofpSplitInstanceBindRegions
must be a multiple of the sparse image block width (VkSparseImageFormatProperties
::imageGranularity
.width) of all non-metadata aspects of the image - The
offset.y
member of any element ofpSplitInstanceBindRegions
must be a multiple of the sparse image block height (VkSparseImageFormatProperties
::imageGranularity
.height) of all non-metadata aspects of the image - The
extent.width
member of any element ofpSplitInstanceBindRegions
must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or elseextent.width
+offset.x
must equal the width of the image subresource - The
extent.height
member of any element ofpSplitInstanceBindRegions
must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or elseextent.height
offset.y
must equal the width of the image subresource
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
- If
deviceIndexCount
is not 0,pDeviceIndices
must be a valid pointer to an array ofdeviceIndexCount
uint32_t
values - If
splitInstanceBindRegionCount
is not 0,pSplitInstanceBindRegions
must be a valid pointer to an array ofsplitInstanceBindRegionCount
VkRect2D
structures
See Also
Layout
struct VkBindImageMemoryDeviceGroupInfo { VkStructureType sType; void const * pNext; uint32_t deviceIndexCount; uint32_t const * pDeviceIndices; uint32_t splitInstanceBindRegionCount;
VkRect2D
const * pSplitInstanceBindRegions; }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
VkBindImageMemoryDeviceGroupInfo.Buffer
An array ofVkBindImageMemoryDeviceGroupInfo
structs.
-
Field Summary
Fields Modifier and Type Field Description static int
ALIGNOF
The struct alignment in bytes.static int
DEVICEINDEXCOUNT
PDEVICEINDICES
PNEXT
PSPLITINSTANCEBINDREGIONSThe struct member offsets.static int
SIZEOF
The struct size in bytes.static int
SPLITINSTANCEBINDREGIONCOUNT
STYPEThe struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkBindImageMemoryDeviceGroupInfo(java.nio.ByteBuffer container)
Creates aVkBindImageMemoryDeviceGroupInfo
instance at the current position of the specifiedByteBuffer
container.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkBindImageMemoryDeviceGroupInfo
calloc()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated withmemCalloc
.static VkBindImageMemoryDeviceGroupInfo.Buffer
calloc(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated withmemCalloc
.static VkBindImageMemoryDeviceGroupInfo
callocStack()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkBindImageMemoryDeviceGroupInfo.Buffer
callocStack(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkBindImageMemoryDeviceGroupInfo.Buffer
callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkBindImageMemoryDeviceGroupInfo
callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkBindImageMemoryDeviceGroupInfo
create()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated withBufferUtils
.static VkBindImageMemoryDeviceGroupInfo.Buffer
create(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated withBufferUtils
.static VkBindImageMemoryDeviceGroupInfo
create(long address)
Returns a newVkBindImageMemoryDeviceGroupInfo
instance for the specified memory address.static VkBindImageMemoryDeviceGroupInfo.Buffer
create(long address, int capacity)
Create aVkBindImageMemoryDeviceGroupInfo.Buffer
instance at the specified memory.static VkBindImageMemoryDeviceGroupInfo
createSafe(long address)
static VkBindImageMemoryDeviceGroupInfo.Buffer
createSafe(long address, int capacity)
int
deviceIndexCount()
Returns the value of thedeviceIndexCount
field.static VkBindImageMemoryDeviceGroupInfo
malloc()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated withmemAlloc
.static VkBindImageMemoryDeviceGroupInfo.Buffer
malloc(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated withmemAlloc
.static VkBindImageMemoryDeviceGroupInfo
mallocStack()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated on the thread-localMemoryStack
.static VkBindImageMemoryDeviceGroupInfo.Buffer
mallocStack(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated on the thread-localMemoryStack
.static VkBindImageMemoryDeviceGroupInfo.Buffer
mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated on the specifiedMemoryStack
.static VkBindImageMemoryDeviceGroupInfo
mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated on the specifiedMemoryStack
.static int
ndeviceIndexCount(long struct)
Unsafe version ofdeviceIndexCount()
.static void
ndeviceIndexCount(long struct, int value)
Sets the specified value to thedeviceIndexCount
field of the specifiedstruct
.static java.nio.IntBuffer
npDeviceIndices(long struct)
Unsafe version ofpDeviceIndices
.static void
npDeviceIndices(long struct, java.nio.IntBuffer value)
Unsafe version ofpDeviceIndices
.static long
npNext(long struct)
Unsafe version ofpNext()
.static void
npNext(long struct, long value)
Unsafe version ofpNext
.static VkRect2D.Buffer
npSplitInstanceBindRegions(long struct)
Unsafe version ofpSplitInstanceBindRegions()
.static void
npSplitInstanceBindRegions(long struct, VkRect2D.Buffer value)
Unsafe version ofpSplitInstanceBindRegions
.static int
nsplitInstanceBindRegionCount(long struct)
Unsafe version ofsplitInstanceBindRegionCount()
.static void
nsplitInstanceBindRegionCount(long struct, int value)
Sets the specified value to thesplitInstanceBindRegionCount
field of the specifiedstruct
.static int
nsType(long struct)
Unsafe version ofsType()
.static void
nsType(long struct, int value)
Unsafe version ofsType
.java.nio.IntBuffer
pDeviceIndices()
Returns aIntBuffer
view of the data pointed to by thepDeviceIndices
field.VkBindImageMemoryDeviceGroupInfo
pDeviceIndices(java.nio.IntBuffer value)
Sets the address of the specifiedIntBuffer
to thepDeviceIndices
field.long
pNext()
Returns the value of thepNext
field.VkBindImageMemoryDeviceGroupInfo
pNext(long value)
Sets the specified value to thepNext
field.VkRect2D.Buffer
pSplitInstanceBindRegions()
Returns aVkRect2D.Buffer
view of the struct array pointed to by thepSplitInstanceBindRegions
field.VkBindImageMemoryDeviceGroupInfo
pSplitInstanceBindRegions(VkRect2D.Buffer value)
Sets the address of the specifiedVkRect2D.Buffer
to thepSplitInstanceBindRegions
field.VkBindImageMemoryDeviceGroupInfo
set(int sType, long pNext, java.nio.IntBuffer pDeviceIndices, VkRect2D.Buffer pSplitInstanceBindRegions)
Initializes this struct with the specified values.VkBindImageMemoryDeviceGroupInfo
set(VkBindImageMemoryDeviceGroupInfo src)
Copies the specified struct data to this struct.int
sizeof()
int
splitInstanceBindRegionCount()
Returns the value of thesplitInstanceBindRegionCount
field.int
sType()
Returns the value of thesType
field.VkBindImageMemoryDeviceGroupInfo
sType(int value)
Sets the specified value to thesType
field.static void
validate(long struct)
Validates pointer members that should not beNULL
.static void
validate(long array, int count)
Callsvalidate(long)
for each struct contained in the specified struct array.
-
-
-
Constructor Detail
-
VkBindImageMemoryDeviceGroupInfo
public VkBindImageMemoryDeviceGroupInfo(java.nio.ByteBuffer container)
Creates aVkBindImageMemoryDeviceGroupInfo
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 Detail
-
sizeof
public int sizeof()
- Specified by:
sizeof
in classorg.lwjgl.system.Struct
-
sType
public int sType()
Returns the value of thesType
field.
-
pNext
public long pNext()
Returns the value of thepNext
field.
-
deviceIndexCount
public int deviceIndexCount()
Returns the value of thedeviceIndexCount
field.
-
pDeviceIndices
@Nullable public java.nio.IntBuffer pDeviceIndices()
Returns aIntBuffer
view of the data pointed to by thepDeviceIndices
field.
-
splitInstanceBindRegionCount
public int splitInstanceBindRegionCount()
Returns the value of thesplitInstanceBindRegionCount
field.
-
pSplitInstanceBindRegions
@Nullable public VkRect2D.Buffer pSplitInstanceBindRegions()
Returns aVkRect2D.Buffer
view of the struct array pointed to by thepSplitInstanceBindRegions
field.
-
sType
public VkBindImageMemoryDeviceGroupInfo sType(int value)
Sets the specified value to thesType
field.
-
pNext
public VkBindImageMemoryDeviceGroupInfo pNext(long value)
Sets the specified value to thepNext
field.
-
pDeviceIndices
public VkBindImageMemoryDeviceGroupInfo pDeviceIndices(@Nullable java.nio.IntBuffer value)
Sets the address of the specifiedIntBuffer
to thepDeviceIndices
field.
-
pSplitInstanceBindRegions
public VkBindImageMemoryDeviceGroupInfo pSplitInstanceBindRegions(@Nullable VkRect2D.Buffer value)
Sets the address of the specifiedVkRect2D.Buffer
to thepSplitInstanceBindRegions
field.
-
set
public VkBindImageMemoryDeviceGroupInfo set(int sType, long pNext, @Nullable java.nio.IntBuffer pDeviceIndices, @Nullable VkRect2D.Buffer pSplitInstanceBindRegions)
Initializes this struct with the specified values.
-
set
public VkBindImageMemoryDeviceGroupInfo set(VkBindImageMemoryDeviceGroupInfo src)
Copies the specified struct data to this struct.- Parameters:
src
- the source struct- Returns:
- this struct
-
malloc
public static VkBindImageMemoryDeviceGroupInfo malloc()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated withmemAlloc
. The instance must be explicitly freed.
-
calloc
public static VkBindImageMemoryDeviceGroupInfo calloc()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated withmemCalloc
. The instance must be explicitly freed.
-
create
public static VkBindImageMemoryDeviceGroupInfo create()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated withBufferUtils
.
-
create
public static VkBindImageMemoryDeviceGroupInfo create(long address)
Returns a newVkBindImageMemoryDeviceGroupInfo
instance for the specified memory address.
-
createSafe
@Nullable public static VkBindImageMemoryDeviceGroupInfo createSafe(long address)
-
malloc
public static VkBindImageMemoryDeviceGroupInfo.Buffer malloc(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated withmemAlloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
calloc
public static VkBindImageMemoryDeviceGroupInfo.Buffer calloc(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated withmemCalloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
create
public static VkBindImageMemoryDeviceGroupInfo.Buffer create(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated withBufferUtils
.- Parameters:
capacity
- the buffer capacity
-
create
public static VkBindImageMemoryDeviceGroupInfo.Buffer create(long address, int capacity)
Create aVkBindImageMemoryDeviceGroupInfo.Buffer
instance at the specified memory.- Parameters:
address
- the memory addresscapacity
- the buffer capacity
-
createSafe
@Nullable public static VkBindImageMemoryDeviceGroupInfo.Buffer createSafe(long address, int capacity)
-
mallocStack
public static VkBindImageMemoryDeviceGroupInfo mallocStack()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated on the thread-localMemoryStack
.
-
callocStack
public static VkBindImageMemoryDeviceGroupInfo callocStack()
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.
-
mallocStack
public static VkBindImageMemoryDeviceGroupInfo mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocate
-
callocStack
public static VkBindImageMemoryDeviceGroupInfo callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkBindImageMemoryDeviceGroupInfo
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocate
-
mallocStack
public static VkBindImageMemoryDeviceGroupInfo.Buffer mallocStack(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated on the thread-localMemoryStack
.- Parameters:
capacity
- the buffer capacity
-
callocStack
public static VkBindImageMemoryDeviceGroupInfo.Buffer callocStack(int capacity)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.- Parameters:
capacity
- the buffer capacity
-
mallocStack
public static VkBindImageMemoryDeviceGroupInfo.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocatecapacity
- the buffer capacity
-
callocStack
public static VkBindImageMemoryDeviceGroupInfo.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkBindImageMemoryDeviceGroupInfo.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocatecapacity
- the buffer capacity
-
nsType
public static int nsType(long struct)
Unsafe version ofsType()
.
-
npNext
public static long npNext(long struct)
Unsafe version ofpNext()
.
-
ndeviceIndexCount
public static int ndeviceIndexCount(long struct)
Unsafe version ofdeviceIndexCount()
.
-
npDeviceIndices
@Nullable public static java.nio.IntBuffer npDeviceIndices(long struct)
Unsafe version ofpDeviceIndices
.
-
nsplitInstanceBindRegionCount
public static int nsplitInstanceBindRegionCount(long struct)
Unsafe version ofsplitInstanceBindRegionCount()
.
-
npSplitInstanceBindRegions
@Nullable public static VkRect2D.Buffer npSplitInstanceBindRegions(long struct)
Unsafe version ofpSplitInstanceBindRegions()
.
-
nsType
public static void nsType(long struct, int value)
Unsafe version ofsType
.
-
npNext
public static void npNext(long struct, long value)
Unsafe version ofpNext
.
-
ndeviceIndexCount
public static void ndeviceIndexCount(long struct, int value)
Sets the specified value to thedeviceIndexCount
field of the specifiedstruct
.
-
npDeviceIndices
public static void npDeviceIndices(long struct, @Nullable java.nio.IntBuffer value)
Unsafe version ofpDeviceIndices
.
-
nsplitInstanceBindRegionCount
public static void nsplitInstanceBindRegionCount(long struct, int value)
Sets the specified value to thesplitInstanceBindRegionCount
field of the specifiedstruct
.
-
npSplitInstanceBindRegions
public static void npSplitInstanceBindRegions(long struct, @Nullable VkRect2D.Buffer value)
Unsafe version ofpSplitInstanceBindRegions
.
-
validate
public static void validate(long struct)
Validates pointer members that should not beNULL
.- Parameters:
struct
- the struct to validate
-
validate
public static void validate(long array, int count)
Callsvalidate(long)
for each struct contained in the specified struct array.- Parameters:
array
- the struct array to validatecount
- the number of structs inarray
-
-