If the pNext chain of VkBindImageMemoryInfo includes a VkBindImageMemoryDeviceGroupInfo structure, then that structure determines how memory is bound to images across multiple devices in a device group.
If deviceIndexCount is greater than zero, then on device index i image is attached to the instance of the memory on the physical device with device index pDeviceIndices[i].
Let N be the number of physical devices in the logical device. If splitInstanceBindRegionCount is greater than zero, then pSplitInstanceBindRegions is a pointer to an array of N2 rectangles, where the image region specified by the rectangle at element i*N+j in resource instance i is bound to the memory instance j. The blocks of the memory that are bound to each sparse image block region use an offset in memory, relative to memoryOffset, computed as if the whole image was 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 of image, and the block at (0,0) corresponds to memory starting at memoryOffset.
If splitInstanceBindRegionCount and deviceIndexCount are zero and the memory comes from a memory heap with the MEMORY_HEAP_MULTI_INSTANCE_BIT bit set, then it is as if pDeviceIndices 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 and deviceIndexCount are zero and the memory comes from a memory heap without the MEMORY_HEAP_MULTI_INSTANCE_BIT bit set, then it is as if pDeviceIndices contains an array of zeros. In other words, by default each physical device attaches to instance zero.
deviceIndexCount and splitInstanceBindRegionCount must be zerodeviceIndexCount must either be zero or equal to the number of physical devices in the logical devicepDeviceIndices must be valid device indicessplitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squaredpSplitInstanceBindRegions that correspond to the same instance of an image must not overlapoffset.x member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the imageoffset.y member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the imageextent.width member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresourceextent.height member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the height of the image subresourcesType must be STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFOdeviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t valuessplitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures
struct VkBindImageMemoryDeviceGroupInfo {
VkStructureType sType;
void const * pNext;
uint32_t deviceIndexCount;
uint32_t const * pDeviceIndices;
uint32_t splitInstanceBindRegionCount;
VkRect2D const * pSplitInstanceBindRegions;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class | VkBindImageMemoryDeviceGroupInfo.
An array of |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | DEVICEINDEXCOUNT
The struct member offsets. |
| public static final int | PDEVICEINDICES
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | PSPLITINSTANCEBINDREGIONS
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | SPLITINSTANCEBINDREGIONCOUNT
The struct member offsets. |
| public static final int | STYPE
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkBindImageMemoryDeviceGroupInfo(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo | |
| public static VkBindImageMemoryDeviceGroupInfo. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkBindImageMemoryDeviceGroupInfo | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkBindImageMemoryDeviceGroupInfo. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static VkBindImageMemoryDeviceGroupInfo | |
| public static VkBindImageMemoryDeviceGroupInfo | |
| public static VkBindImageMemoryDeviceGroupInfo. | |
| public static VkBindImageMemoryDeviceGroupInfo. | |
| protected VkBindImageMemoryDeviceGroupInfo | create(long
the struct memory address address, ByteBuffer an optional container buffer, to be referenced strongly by the struct instance. container)Implements abstract org. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkBindImageMemoryDeviceGroupInfo | |
| public static VkBindImageMemoryDeviceGroupInfo | create(long address)
Returns a new |
| public static VkBindImageMemoryDeviceGroupInfo. | create(int
the buffer capacity capacity)Returns a new |
| public static VkBindImageMemoryDeviceGroupInfo. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public static VkBindImageMemoryDeviceGroupInfo | |
| public static VkBindImageMemoryDeviceGroupInfo. | |
| public int | |
| public static VkBindImageMemoryDeviceGroupInfo | |
| public static VkBindImageMemoryDeviceGroupInfo. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkBindImageMemoryDeviceGroupInfo | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkBindImageMemoryDeviceGroupInfo. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static VkBindImageMemoryDeviceGroupInfo | |
| public static VkBindImageMemoryDeviceGroupInfo | |
| public static VkBindImageMemoryDeviceGroupInfo. | |
| public static VkBindImageMemoryDeviceGroupInfo. | |
| public static int | |
| public static void | ndeviceIndexCount(long struct, int value)
Sets the specified value to the |
| public static IntBuffer | |
| public static void | |
| public static long | |
| public static void | |
| public static VkRect2D. | |
| public static void | npSplitInstanceBindRegions(long struct, VkRect2D.
Unsafe version of |
| public static int | |
| public static void | nsplitInstanceBindRegionCount(long struct, int value)
Sets the specified value to the |
| public static int | |
| public static void | |
| public IntBuffer | |
| public VkBindImageMemoryDeviceGroupInfo | pDeviceIndices(IntBuffer value)
Sets the address of the specified |
| public long | |
| public VkBindImageMemoryDeviceGroupInfo | |
| public VkRect2D. | pSplitInstanceBindRegions()
a pointer to an array of |
| public VkBindImageMemoryDeviceGroupInfo | pSplitInstanceBindRegions(VkRect2D.
Sets the address of the specified |
| public VkBindImageMemoryDeviceGroupInfo | |
| public VkBindImageMemoryDeviceGroupInfo | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public int | |
| public int | |
| public int | |
| public VkBindImageMemoryDeviceGroupInfo | |
| public VkBindImageMemoryDeviceGroupInfo | sType$Default()
Sets the |
| public static void |
| ALIGNOF | back to summary |
|---|---|
| public static final int ALIGNOF The struct alignment in bytes. | |
| DEVICEINDEXCOUNT | back to summary |
|---|---|
| public static final int DEVICEINDEXCOUNT The struct member offsets. | |
| PDEVICEINDICES | back to summary |
|---|---|
| public static final int PDEVICEINDICES The struct member offsets. | |
| PNEXT | back to summary |
|---|---|
| public static final int PNEXT The struct member offsets. | |
| PSPLITINSTANCEBINDREGIONS | back to summary |
|---|---|
| public static final int PSPLITINSTANCEBINDREGIONS The struct member offsets. | |
| SIZEOF | back to summary |
|---|---|
| public static final int SIZEOF The struct size in bytes. | |
| SPLITINSTANCEBINDREGIONCOUNT | back to summary |
|---|---|
| public static final int SPLITINSTANCEBINDREGIONCOUNT The struct member offsets. | |
| STYPE | back to summary |
|---|---|
| public static final int STYPE The struct member offsets. | |
| VkBindImageMemoryDeviceGroupInfo | back to summary |
|---|---|
| protected VkBindImageMemoryDeviceGroupInfo(long address, ByteBuffer container) | |
| VkBindImageMemoryDeviceGroupInfo | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo(ByteBuffer container) Creates a The created instance holds a strong reference to the container object. | |
| calloc | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo calloc() Returns a new | |
| calloc | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo calloc(MemoryStack stack) Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Returns a new
| |
| callocStack | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo callocStack()
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| callocStack | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo callocStack(MemoryStack stack)
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| callocStack | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| callocStack | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| create | back to summary |
|---|---|
| protected VkBindImageMemoryDeviceGroupInfo create(long address, ByteBuffer container) Implements abstract org. Doc from org. Similar to Effectively, every
| |
| create | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo create() Returns a new | |
| create | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo create(long address) Returns a new | |
| create | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Returns a new
| |
| create | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Create a
| |
| createSafe | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo createSafe(long address) Like
| |
| createSafe | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Like
| |
| deviceIndexCount | back to summary |
|---|---|
| public int deviceIndexCount() the number of elements in
| |
| malloc | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo malloc() Returns a new | |
| malloc | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo malloc(MemoryStack stack) Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Returns a new
| |
| mallocStack | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo mallocStack()
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| mallocStack | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo mallocStack(MemoryStack stack)
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| mallocStack | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| mallocStack | back to summary |
|---|---|
| public static VkBindImageMemoryDeviceGroupInfo. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| ndeviceIndexCount | back to summary |
|---|---|
| public static int ndeviceIndexCount(long struct) Unsafe version of | |
| ndeviceIndexCount | back to summary |
|---|---|
| public static void ndeviceIndexCount(long struct, int value) Sets the specified value to the | |
| npDeviceIndices | back to summary |
|---|---|
| public static IntBuffer npDeviceIndices(long struct) Unsafe version of
| |
| npDeviceIndices | back to summary |
|---|---|
| public static void npDeviceIndices(long struct, IntBuffer value) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static long npNext(long struct) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static void npNext(long struct, long value) Unsafe version of | |
| npSplitInstanceBindRegions | back to summary |
|---|---|
| public static VkRect2D. Unsafe version of
| |
| npSplitInstanceBindRegions | back to summary |
|---|---|
| public static void npSplitInstanceBindRegions(long struct, VkRect2D. Unsafe version of | |
| nsplitInstanceBindRegionCount | back to summary |
|---|---|
| public static int nsplitInstanceBindRegionCount(long struct) Unsafe version of | |
| nsplitInstanceBindRegionCount | back to summary |
|---|---|
| public static void nsplitInstanceBindRegionCount(long struct, int value) Sets the specified value to the | |
| nsType | back to summary |
|---|---|
| public static int nsType(long struct) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static void nsType(long struct, int value) Unsafe version of | |
| pDeviceIndices | back to summary |
|---|---|
| public IntBuffer pDeviceIndices() a pointer to an array of device indices.
| |
| pDeviceIndices | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo pDeviceIndices(IntBuffer value) Sets the address of the specified | |
| pNext | back to summary |
|---|---|
| public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo pNext(long value) Sets the specified value to the | |
| pSplitInstanceBindRegions | back to summary |
|---|---|
| public VkRect2D. a pointer to an array of
| |
| pSplitInstanceBindRegions | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo pSplitInstanceBindRegions(VkRect2D. Sets the address of the specified | |
| set | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo set(int sType, long pNext, IntBuffer pDeviceIndices, VkRect2D. Initializes this struct with the specified values. | |
| set | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo set(VkBindImageMemoryDeviceGroupInfo src) Copies the specified struct data to this struct.
| |
| sizeof | back to summary |
|---|---|
| public int sizeof() Implements abstract org. Doc from org. Returns
| |
| splitInstanceBindRegionCount | back to summary |
|---|---|
| public int splitInstanceBindRegionCount() the number of elements in
| |
| sType | back to summary |
|---|---|
| public int sType() a
| |
| sType | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo sType(int value) Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo sType$Default() Sets the | |
| validate | back to summary |
|---|---|
| public static void validate(long struct) Validates pointer members that should not be
| |
VkBindImageMemoryDeviceGroupInfo structs.
| Modifier and Type | Field and Description |
|---|---|
| private static final VkBindImageMemoryDeviceGroupInfo |
| Access | Constructor and Description |
|---|---|
| public | Buffer(ByteBuffer container)
Creates a new |
| public | |
| pack-priv |
| ELEMENT_FACTORY | back to summary |
|---|---|
| private static final VkBindImageMemoryDeviceGroupInfo ELEMENT_FACTORY | |
| Buffer | back to summary |
|---|---|
| public Buffer(ByteBuffer container) Creates a new Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values
will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided
by The created buffer instance holds a strong reference to the container object. | |
| Buffer | back to summary |
|---|---|
| public Buffer(long address, int cap) | |
| Buffer | back to summary |
|---|---|
| pack-priv Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap) | |
| deviceIndexCount | back to summary |
|---|---|
public int deviceIndexCount()
| |
| getElementFactory | back to summary |
|---|---|
| protected VkBindImageMemoryDeviceGroupInfo getElementFactory() Implements abstract org.
| |
| pDeviceIndices | back to summary |
|---|---|
public IntBuffer pDeviceIndices()
| |
| pDeviceIndices | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo. Sets the address of the specified | |
| pNext | back to summary |
|---|---|
public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo. Sets the specified value to the | |
| pSplitInstanceBindRegions | back to summary |
|---|---|
public VkRect2D.
| |
| pSplitInstanceBindRegions | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo. Sets the address of the specified | |
| self | back to summary |
|---|---|
| protected VkBindImageMemoryDeviceGroupInfo. Implements abstract org.
| |
| splitInstanceBindRegionCount | back to summary |
|---|---|
public int splitInstanceBindRegionCount()
| |
| sType | back to summary |
|---|---|
public int sType()
| |
| sType | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo. Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkBindImageMemoryDeviceGroupInfo. Sets the | |