VkDeviceGroupDeviceCreateInfo(3)

# VkDeviceGroupDeviceCreateInfo(3) Manual Page

## Name

VkDeviceGroupDeviceCreateInfo - Create a logical device from multiple physical devices

Loading… please wait.

## C Specification

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:

    // Provided by VK_VERSION_1_1
    typedef struct VkDeviceGroupDeviceCreateInfo {
        VkStructureType            sType;
        const void*                pNext;
        uint32_t                   physicalDeviceCount;
        const VkPhysicalDevice*    pPhysicalDevices;
    } VkDeviceGroupDeviceCreateInfo;

    // Provided by VK_KHR_device_group_creation
    // Equivalent to VkDeviceGroupDeviceCreateInfo
    typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;

## Members

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `physicalDeviceCount` is the number of elements in the `pPhysicalDevices` array.

- `pPhysicalDevices` is a pointer to an array of physical device handles belonging to the same device group.

## Description

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

Structure Chaining

Extends the structure

  - VkDeviceCreateInfo

## See Also

VK_KHR_device_group_creation, VK_VERSION_1_1, VkPhysicalDevice, VkStructureType

## Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0