• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2016-2021 The Khronos Group, Inc.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5include::{generated}/meta/{refprefix}VK_KHR_device_group.txt[]
6
7=== Other Extension Metadata
8
9*Last Modified Date*::
10    2017-10-10
11*IP Status*::
12    No known IP claims.
13*Interactions and External Dependencies*::
14  - Promoted to Vulkan 1.1 Core
15*Contributors*::
16  - Jeff Bolz, NVIDIA
17  - Tobias Hector, Imagination Technologies
18
19=== Description
20
21This extension provides functionality to use a logical device that consists
22of multiple physical devices, as created with the
23`apiext:VK_KHR_device_group_creation` extension.
24A device group can allocate memory across the subdevices, bind memory from
25one subdevice to a resource on another subdevice, record command buffers
26where some work executes on an arbitrary subset of the subdevices, and
27potentially present a swapchain image from one or more subdevices.
28
29=== Promotion to Vulkan 1.1
30
31ifdef::VK_KHR_swapchain[]
32The following enums, types and commands are included as interactions with
33`apiext:VK_KHR_swapchain`:
34
35  * ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
36  * ename:VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
37  * ename:VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
38  * ename:VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
39  * ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
40  * ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
41  * ename:VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
42  * elink:VkDeviceGroupPresentModeFlagBitsKHR
43  * slink:VkDeviceGroupPresentCapabilitiesKHR
44  * slink:VkImageSwapchainCreateInfoKHR
45  * slink:VkBindImageMemorySwapchainInfoKHR
46  * slink:VkAcquireNextImageInfoKHR
47  * slink:VkDeviceGroupPresentInfoKHR
48  * slink:VkDeviceGroupSwapchainCreateInfoKHR
49  * flink:vkGetDeviceGroupPresentCapabilitiesKHR
50  * flink:vkGetDeviceGroupSurfacePresentModesKHR
51  * flink:vkGetPhysicalDevicePresentRectanglesKHR
52  * flink:vkAcquireNextImage2KHR
53
54If Vulkan 1.1 and `apiext:VK_KHR_swapchain` are supported, these are
55included by `VK_KHR_swapchain`.
56endif::VK_KHR_swapchain[]
57
58The base functionality in this extension is included in core Vulkan 1.1,
59with the KHR suffix omitted.
60The original type, enum and command names are still available as aliases of
61the core functionality.
62
63include::{generated}/interfaces/VK_KHR_device_group.txt[]
64
65=== New Built-in Variables
66
67  * <<interfaces-builtin-variables-deviceindex,code:DeviceIndex>>
68
69=== New SPIR-V Capabilities
70
71  * <<spirvenv-capabilities-table-DeviceGroup,code:DeviceGroup>>
72
73=== Version History
74
75 * Revision 1, 2016-10-19 (Jeff Bolz)
76   - Internal revisions
77 * Revision 2, 2017-05-19 (Tobias Hector)
78   - Removed extended memory bind functions to VK_KHR_bind_memory2, added
79     dependency on that extension, and device-group-specific structs for
80     those functions.
81 * Revision 3, 2017-10-06 (Ian Elliott)
82   - Corrected Vulkan 1.1 interactions with the WSI extensions.
83     All Vulkan 1.1 WSI interactions are with the VK_KHR_swapchain
84     extension.
85 * Revision 4, 2017-10-10 (Jeff Bolz)
86   - Rename "`SFR`" bits and structure members to use the phrase "`split
87     instance bind regions`".
88