blob: 6ed300f0f0ea940e7eb22876398c51ba5fc0bed3 [file] [log] [blame]
// Copyright 2016-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0
include::{generated}/meta/{refprefix}VK_KHR_device_group.txt[]
=== Other Extension Metadata
*Last Modified Date*::
2017-10-10
*IP Status*::
No known IP claims.
*Interactions and External Dependencies*::
- Promoted to Vulkan 1.1 Core
*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
`apiext: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
ifdef::VK_KHR_swapchain[]
The following enums, types and commands are included as interactions with
`apiext:VK_KHR_swapchain`:
* ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
* ename:VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
* ename:VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
* ename:VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
* ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
* ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
* ename:VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
* elink:VkDeviceGroupPresentModeFlagBitsKHR
* slink:VkDeviceGroupPresentCapabilitiesKHR
* slink:VkImageSwapchainCreateInfoKHR
* slink:VkBindImageMemorySwapchainInfoKHR
* slink:VkAcquireNextImageInfoKHR
* slink:VkDeviceGroupPresentInfoKHR
* slink:VkDeviceGroupSwapchainCreateInfoKHR
* flink:vkGetDeviceGroupPresentCapabilitiesKHR
* flink:vkGetDeviceGroupSurfacePresentModesKHR
* flink:vkGetPhysicalDevicePresentRectanglesKHR
* flink:vkAcquireNextImage2KHR
If Vulkan 1.1 and `apiext:VK_KHR_swapchain` are supported, these are
included by `VK_KHR_swapchain`.
endif::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.
include::{generated}/interfaces/VK_KHR_device_group.txt[]
=== New Built-in Variables
* <<interfaces-builtin-variables-deviceindex,code:DeviceIndex>>
=== New SPIR-V Capabilities
* <<spirvenv-capabilities-table-DeviceGroup,code:DeviceGroup>>
=== 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`".