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:

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:

If VK_KHR_swapchain is supported:

New Structures

If VK_KHR_bind_memory2 is supported:

If VK_KHR_surface is supported:

If VK_KHR_swapchain is supported:

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 phrase split instance bind regions.