VkDeviceGroupDeviceCreateInfo
A logical device can be created that connects to one or more physical
devices by adding a VkDeviceGroupDeviceCreateInfo
structure to the
pNext
chain of VkDeviceCreateInfo.
The VkDeviceGroupDeviceCreateInfo
structure is defined as:
typedef struct VkDeviceGroupDeviceCreateInfo {
VkStructureType sType;
const void* pNext;
uint32_t physicalDeviceCount;
const VkPhysicalDevice* pPhysicalDevices;
} VkDeviceGroupDeviceCreateInfo;
or the equivalent
typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.physicalDeviceCount
is the number of elements in thepPhysicalDevices
array.pPhysicalDevices
is a pointer to an array of physical device handles belonging to the same device group.
The elements of the pPhysicalDevices
array are an ordered list of the
physical devices that the logical device represents.
These must be a subset of a single device group, and need not be in the
same order as they were enumerated.
The order of the physical devices in the pPhysicalDevices
array
determines the device index of each physical device, with element i
being assigned a device index of i.
Certain commands and structures refer to one or more physical devices by
using device indices or device masks formed using device indices.
A logical device created without using VkDeviceGroupDeviceCreateInfo
,
or with physicalDeviceCount
equal to zero, is equivalent to a
physicalDeviceCount
of one and pPhysicalDevices
pointing to the
physicalDevice
parameter to vkCreateDevice.
In particular, the device index of that physical device is zero.
Valid Usage
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375
Each element of pPhysicalDevices
must be unique
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376
All elements of pPhysicalDevices
must be in the same device group
as enumerated by vkEnumeratePhysicalDeviceGroups
VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377
If physicalDeviceCount
is not 0
, the physicalDevice
parameter of vkCreateDevice must be an element of
pPhysicalDevices
Valid Usage (Implicit)
VUID-VkDeviceGroupDeviceCreateInfo-sType-sType
sType
must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameter
If physicalDeviceCount
is not 0
, pPhysicalDevices
must be a valid pointer to an array of physicalDeviceCount
valid VkPhysicalDevice handles