VK_KHR_device_group
Other Extension Metadata
Last Modified Date
2017-10-10
IP Status
No known IP claims.
Contributors
- Jeff Bolz, NVIDIA
- Tobias Hector, Imagination Technologies
Description
This extension provides functionality to use a logical device that consists of multiple physical devices, as created with the 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.
Promotion to Vulkan 1.1
The following enums, types and commands are included as interactions with VK_KHR_swapchain:
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
- VkDeviceGroupPresentModeFlagBitsKHR
- VkDeviceGroupPresentCapabilitiesKHR
- VkImageSwapchainCreateInfoKHR
- VkBindImageMemorySwapchainInfoKHR
- VkAcquireNextImageInfoKHR
- VkDeviceGroupPresentInfoKHR
- VkDeviceGroupSwapchainCreateInfoKHR
- vkGetDeviceGroupPresentCapabilitiesKHR
- vkGetDeviceGroupSurfacePresentModesKHR
- vkGetPhysicalDevicePresentRectanglesKHR
- vkAcquireNextImage2KHR
If 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.
New Commands
If VK_KHR_surface is supported:
- vkGetDeviceGroupPresentCapabilitiesKHR
- vkGetDeviceGroupSurfacePresentModesKHR
- vkGetPhysicalDevicePresentRectanglesKHR
If VK_KHR_swapchain is supported:
New Structures
- Extending VkBindSparseInfo:
- Extending VkCommandBufferBeginInfo:
- Extending VkMemoryAllocateInfo:
- Extending VkRenderPassBeginInfo, VkRenderingInfo:
- Extending VkSubmitInfo:
If VK_KHR_bind_memory2 is supported:
- Extending VkBindBufferMemoryInfo:
- Extending VkBindImageMemoryInfo:
If VK_KHR_surface is supported:
If VK_KHR_swapchain is supported:
- VkAcquireNextImageInfoKHR
- Extending VkBindImageMemoryInfo:
- Extending VkImageCreateInfo:
- Extending VkPresentInfoKHR:
- Extending VkSwapchainCreateInfoKHR:
New Enums
If VK_KHR_surface is supported:
New Bitmasks
If VK_KHR_surface is supported:
New Enum Constants
VK_KHR_DEVICE_GROUP_EXTENSION_NAME
VK_KHR_DEVICE_GROUP_SPEC_VERSION
- Extending VkDependencyFlagBits:
VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR
- Extending VkMemoryAllocateFlagBits:
VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR
- Extending VkPeerMemoryFeatureFlagBits:
VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR
VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR
VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR
VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR
- Extending VkPipelineCreateFlagBits:
VK_PIPELINE_CREATE_DISPATCH_BASE_KHR
VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
- Extending VkStructureType:
VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR
VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR
VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR
VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR
If VK_KHR_bind_memory2 is supported:
- Extending VkImageCreateFlagBits:
VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
- Extending VkStructureType:
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR
If VK_KHR_surface is supported:
- Extending VkStructureType:
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
If VK_KHR_swapchain is supported:
- Extending VkStructureType:
VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
- Extending VkSwapchainCreateFlagBitsKHR:
VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
New Built-in Variables
New SPIR-V Capabilities
Version History
- Revision 1, 2016-10-19 (Jeff Bolz)
- Internal revisions
- Revision 2, 2017-05-19 (Tobias Hector)
- Removed extended memory bind functions to VK_KHR_bind_memory2, added dependency on that extension, and device-group-specific structs for those functions.
- Revision 3, 2017-10-06 (Ian Elliott)
- Corrected Vulkan 1.1 interactions with the WSI extensions. All Vulkan 1.1 WSI interactions are with the VK_KHR_swapchain extension.
- Revision 4, 2017-10-10 (Jeff Bolz)
- Rename
SFR
bits and structure members to use the phrasesplit instance bind regions
.
- Rename