Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO :: VkStructureType
- pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO :: VkStructureType
- pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT :: VkImageCreateFlagBits
- data VkBindBufferMemoryDeviceGroupInfo = VkBindBufferMemoryDeviceGroupInfo {}
- data VkBindImageMemoryDeviceGroupInfo = VkBindImageMemoryDeviceGroupInfo {}
Documentation
data VkBindBufferMemoryDeviceGroupInfo Source #
VkBindBufferMemoryDeviceGroupInfo - Structure specifying device within a group to bind to
Members
If the pNext
list of
VkBindBufferMemoryInfo
includes a VkBindBufferMemoryDeviceGroupInfo
structure, then that
structure determines how memory is bound to buffers across multiple
devices in a device group.
Description
The VkBindBufferMemoryDeviceGroupInfo
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.
If deviceIndexCount
is greater than zero, then on device index i the
buffer is attached to the instance of memory
on the physical device
with device index pDeviceIndices[i].
If deviceIndexCount
is zero and memory
comes from a memory heap with
the VK_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 memory
.
If deviceIndexCount
is zero and memory
comes from a memory heap
without the VK_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.
Valid Usage
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
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
- If
deviceIndexCount
is not0
,pDeviceIndices
must be a valid pointer to an array ofdeviceIndexCount
uint32_t
values
See Also
VkBindBufferMemoryDeviceGroupInfo | |
|
Instances
data VkBindImageMemoryDeviceGroupInfo Source #
VkBindImageMemoryDeviceGroupInfo - Structure specifying device within a group to bind to
Members
If the pNext
list of
VkBindImageMemoryInfo
includes a VkBindImageMemoryDeviceGroupInfo
structure, then that
structure determines how memory is bound to images across multiple
devices in a device group.
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 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 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 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 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
VK_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
VK_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.
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 beVK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
- If
deviceIndexCount
is not0
,pDeviceIndices
must be a valid pointer to an array ofdeviceIndexCount
uint32_t
values - If
splitInstanceBindRegionCount
is not0
,pSplitInstanceBindRegions
must be a valid pointer to an array ofsplitInstanceBindRegionCount
VkRect2D
structures