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