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