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