VK_KHR_device_group_creation extension. A device group can allocate memory across the subdevices, bind memory from one subdevice to a resource on another subdevice, record command buffers where some work executes on an arbitrary subset of the subdevices, and potentially present a swapchain image from one or more subdevices.
The following enums, types and commands are included as interactions with VK_KHR_swapchain:
STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHRSTRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHRSTRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHRSTRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHRSTRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHRSTRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHRSWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHRVkDeviceGroupPresentModeFlagBitsKHRVkDeviceGroupPresentCapabilitiesKHRVkImageSwapchainCreateInfoKHRVkBindImageMemorySwapchainInfoKHRVkAcquireNextImageInfoKHRVkDeviceGroupPresentInfoKHRVkDeviceGroupSwapchainCreateInfoKHRGetDeviceGroupPresentCapabilitiesKHRGetDeviceGroupSurfacePresentModesKHRGetPhysicalDevicePresentRectanglesKHRAcquireNextImage2KHRIf Vulkan 1.1 and VK_KHR_swapchain are supported, these are included by VK_KHR_swapchain.
The base functionality in this extension is included in core Vulkan 1.1, with the KHR suffix omitted. The original type, enum and command names are still available as aliases of the core functionality.
VK_KHR_device_groupVK_KHR_device_group_creationSPV_KHR_device_group| Modifier and Type | Field and Description |
|---|---|
| public static final int | VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR
Extends |
| public static final int | VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
Extends |
| public static final String | VK_KHR_DEVICE_GROUP_EXTENSION_NAME
The extension name. |
| public static final int | VK_KHR_DEVICE_GROUP_SPEC_VERSION
The extension specification version. |
| public static final int | VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR
Extends |
| public static final int | VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR
Extends |
| public static final int | VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR
Extends |
| public static final int | VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR
Extends |
| public static final int | VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR
Extends |
| public static final int | VK_PIPELINE_CREATE_DISPATCH_BASE_KHR
Extends |
| public static final int | VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
Extends |
| public static final int | VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR
Extends |
| public static final int | VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
Extends |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static int | nvkAcquireNextImage2KHR(VkDevice device, long pAcquireInfo, long pImageIndex)
Unsafe version of: |
| public static void | nvkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device, int heapIndex, int localDeviceIndex, int remoteDeviceIndex, long pPeerMemoryFeatures)
Unsafe version of: |
| public static int | nvkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device, long pDeviceGroupPresentCapabilities)
Unsafe version of: |
| public static int | nvkGetDeviceGroupSurfacePresentModesKHR(VkDevice device, long surface, long pModes)
Unsafe version of: |
| public static int | nvkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice, long surface, long
a pointer to an integer related to the number of rectangles available or queried, as described below. pRectCount, long pRects)Unsafe version of: |
| public static int | vkAcquireNextImage2KHR(VkDevice
the device associated with device, VkAcquireNextImageInfoKHR swapchain.a pointer to a pAcquireInfo, IntBuffer VkAcquireNextImageInfoKHR structure containing parameters of the acquire.a pointer to a pImageIndex)uint32_t that is set to the index of the next image to use.Retrieve the index of the next available presentable image. |
| public static int | vkAcquireNextImage2KHR(VkDevice device, VkAcquireNextImageInfoKHR pAcquireInfo, int[] pImageIndex)
Array version of: |
| public static void | vkCmdDispatchBaseKHR(VkCommandBuffer
the command buffer into which the command will be recorded. commandBuffer, int the start value for the X component of baseGroupX, int WorkgroupId.the start value for the Y component of baseGroupY, int WorkgroupId.the start value for the Z component of baseGroupZ, int WorkgroupId.the number of local workgroups to dispatch in the X dimension. groupCountX, int the number of local workgroups to dispatch in the Y dimension. groupCountY, int the number of local workgroups to dispatch in the Z dimension. groupCountZ)See |
| public static void | vkCmdSetDeviceMaskKHR(VkCommandBuffer
command buffer whose current device mask is modified. commandBuffer, int the new value of the current device mask. deviceMask)See |
| public static void | vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice
the logical device that owns the memory. device, int the index of the memory heap from which the memory is allocated. heapIndex, int the device index of the physical device that performs the memory access. localDeviceIndex, int the device index of the physical device that the memory is allocated for. remoteDeviceIndex, IntBuffer a pointer to a pPeerMemoryFeatures)VkPeerMemoryFeatureFlags bitmask indicating which types of memory accesses are supported for the combination of heap, local, and remote devices. |
| public static void | vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device, int heapIndex, int localDeviceIndex, int remoteDeviceIndex, int[] pPeerMemoryFeatures)
Array version of: |
| public static int | vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice
the logical device. device, VkDeviceGroupPresentCapabilitiesKHR a pointer to a pDeviceGroupPresentCapabilities)VkDeviceGroupPresentCapabilitiesKHR structure in which the device’s capabilities are returned.Query present capabilities from other physical devices. |
| public static int | vkGetDeviceGroupSurfacePresentModesKHR(VkDevice
the logical device. device, long the surface. surface, IntBuffer a pointer to a pModes)VkDeviceGroupPresentModeFlagsKHR in which the supported device group present modes for the surface are returned.Query present capabilities for a surface. |
| public static int | vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device, long surface, int[] pModes)
Array version of: |
| public static int | vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice
the physical device. physicalDevice, long the surface. surface, IntBuffer a pointer to an integer related to the number of rectangles available or queried, as described below. pRectCount, VkRect2D.either pRectsNULL or a pointer to an array of VkRect2D structures.Query present rectangles for a surface on a physical device. |
| public static int | vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice, long surface, int[] pRectCount, VkRect2D.
Array version of: |
| VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR | back to summary |
|---|---|
| public static final int VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR Extends | |
| VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR | back to summary |
|---|---|
| public static final int VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR Extends | |
| VK_KHR_DEVICE_GROUP_EXTENSION_NAME | back to summary |
|---|---|
| public static final String VK_KHR_DEVICE_GROUP_EXTENSION_NAME The extension name. | |
| VK_KHR_DEVICE_GROUP_SPEC_VERSION | back to summary |
|---|---|
| public static final int VK_KHR_DEVICE_GROUP_SPEC_VERSION The extension specification version. | |
| VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR | back to summary |
|---|---|
| public static final int VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR Extends | |
| VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR | back to summary |
|---|---|
| public static final int VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR Extends Enum values: | |
| VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR | back to summary |
|---|---|
| public static final int VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR Extends Enum values: | |
| VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR | back to summary |
|---|---|
| public static final int VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR Extends Enum values: | |
| VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR | back to summary |
|---|---|
| public static final int VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR Extends Enum values: | |
| VK_PIPELINE_CREATE_DISPATCH_BASE_KHR | back to summary |
|---|---|
| public static final int VK_PIPELINE_CREATE_DISPATCH_BASE_KHR Extends Enum values: | |
| VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR | back to summary |
|---|---|
| public static final int VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR Extends | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR Extends Enum values: | |
| VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR Extends Enum values: | |
| VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR | back to summary |
|---|---|
| public static final int VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR Extends | |
| KHRDeviceGroup | back to summary |
|---|---|
| protected KHRDeviceGroup() | |
| nvkAcquireNextImage2KHR | back to summary |
|---|---|
| public static int nvkAcquireNextImage2KHR(VkDevice device, long pAcquireInfo, long pImageIndex) Unsafe version of: | |
| nvkGetDeviceGroupPeerMemoryFeaturesKHR | back to summary |
|---|---|
| public static void nvkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device, int heapIndex, int localDeviceIndex, int remoteDeviceIndex, long pPeerMemoryFeatures) Unsafe version of: | |
| nvkGetDeviceGroupPresentCapabilitiesKHR | back to summary |
|---|---|
| public static int nvkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device, long pDeviceGroupPresentCapabilities) Unsafe version of: | |
| nvkGetDeviceGroupSurfacePresentModesKHR | back to summary |
|---|---|
| public static int nvkGetDeviceGroupSurfacePresentModesKHR(VkDevice device, long surface, long pModes) Unsafe version of: | |
| nvkGetPhysicalDevicePresentRectanglesKHR | back to summary |
|---|---|
| public static int nvkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice, long surface, long pRectCount, long pRects) Unsafe version of:
| |
| vkAcquireNextImage2KHR | back to summary |
|---|---|
| public static int vkAcquireNextImage2KHR(VkDevice device, VkAcquireNextImageInfoKHR pAcquireInfo, IntBuffer pImageIndex) Retrieve the index of the next available presentable image. C SpecificationTo acquire an available presentable image to use, and retrieve the index of that image, call:
DescriptionIf the Valid Usage
Valid Usage (Implicit)
Return Codes
See Also
| |
| vkAcquireNextImage2KHR | back to summary |
|---|---|
| public static int vkAcquireNextImage2KHR(VkDevice device, VkAcquireNextImageInfoKHR pAcquireInfo, int[] pImageIndex) Array version of:
| |
| vkCmdDispatchBaseKHR | back to summary |
|---|---|
| public static void vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, int baseGroupX, int baseGroupY, int baseGroupZ, int groupCountX, int groupCountY, int groupCountZ) See
| |
| vkCmdSetDeviceMaskKHR | back to summary |
|---|---|
| public static void vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer, int deviceMask) See
| |
| vkGetDeviceGroupPeerMemoryFeaturesKHR | back to summary |
|---|---|
| public static void vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device, int heapIndex, int localDeviceIndex, int remoteDeviceIndex, IntBuffer pPeerMemoryFeatures) See
| |
| vkGetDeviceGroupPeerMemoryFeaturesKHR | back to summary |
|---|---|
| public static void vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device, int heapIndex, int localDeviceIndex, int remoteDeviceIndex, int[] pPeerMemoryFeatures) Array version of: | |
| vkGetDeviceGroupPresentCapabilitiesKHR | back to summary |
|---|---|
| public static int vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR pDeviceGroupPresentCapabilities) Query present capabilities from other physical devices. C SpecificationA logical device that represents multiple physical devices may support presenting from images on more than one physical device, or combining images from multiple physical devices. To query these capabilities, call:
Valid Usage (Implicit)
Return Codes
See Also
| |
| vkGetDeviceGroupSurfacePresentModesKHR | back to summary |
|---|---|
| public static int vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device, long surface, IntBuffer pModes) Query present capabilities for a surface. C SpecificationSome surfaces may not be capable of using all the device group present modes. To query the supported device group present modes for a particular surface, call:
DescriptionThe modes returned by this command are not invariant, and may change in response to the surface being moved, resized, or occluded. These modes must be a subset of the modes returned by Valid Usage
Valid Usage (Implicit)
Host Synchronization
Return Codes
| |
| vkGetDeviceGroupSurfacePresentModesKHR | back to summary |
|---|---|
| public static int vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device, long surface, int[] pModes) Array version of:
| |
| vkGetPhysicalDevicePresentRectanglesKHR | back to summary |
|---|---|
| public static int vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice, long surface, IntBuffer pRectCount, VkRect2D. Query present rectangles for a surface on a physical device. C SpecificationWhen using To query a set of rectangles used in presentation on the physical device, call:
DescriptionIf The values returned by this command are not invariant, and may change in response to the surface being moved, resized, or occluded. The rectangles returned by this command must not overlap. Valid Usage
Valid Usage (Implicit)
Host Synchronization
Return Codes
See Also
| |
| vkGetPhysicalDevicePresentRectanglesKHR | back to summary |
|---|---|
| public static int vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice, long surface, int[] pRectCount, VkRect2D. Array version of:
| |