VkCommandPoolCreateInfo(3)

# VkCommandPoolCreateInfo(3) Manual Page

## Name

VkCommandPoolCreateInfo - Structure specifying parameters of a newly created command pool

## C Specification

The `VkCommandPoolCreateInfo` structure is defined as:

    // Provided by VK_VERSION_1_0
    typedef struct VkCommandPoolCreateInfo {
        VkStructureType             sType;
        const void*                 pNext;
        VkCommandPoolCreateFlags    flags;
        uint32_t                    queueFamilyIndex;
    } VkCommandPoolCreateInfo;

## Members

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

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

- `flags` is a bitmask of VkCommandPoolCreateFlagBits indicating usage behavior for the pool and command buffers allocated from it.

- `queueFamilyIndex` designates a queue family as described in section Queue Family Properties. All command buffers allocated from this command pool must be submitted on queues from the same queue family.

## Description

Valid Usage

- VUID-VkCommandPoolCreateInfo-flags-02860
  If the `protectedMemory` feature is not enabled, the VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of `flags` must not be set

- VUID-VkCommandPoolCreateInfo-pNext-09908
  If the `pNext` chain includes a VkDataGraphProcessingEngineCreateInfoARM structure, then `queueFamilyIndex` must designate a queue family that supports VK_QUEUE_DATA_GRAPH_BIT_ARM

- VUID-VkCommandPoolCreateInfo-pNext-09909
  If the `pNext` chain includes a VkDataGraphProcessingEngineCreateInfoARM structure, each member of `pProcessingEngines` must be identical to VkQueueFamilyDataGraphPropertiesARM::`engine` retrieved from vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM with `queueFamilyIndex` and the `physicalDevice` that was used to create `device`

- VUID-VkCommandPoolCreateInfo-queueFamilyIndex-11830
  If `queueFamilyIndex` designates a queue family that supports VK_QUEUE_DATA_GRAPH_BIT_ARM and enumerates a foreign engine through vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM with type VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM or VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM, the `pNext` chain must include VkDataGraphProcessingEngineCreateInfoARM with VkPhysicalDeviceDataGraphProcessingEngineARM::`isForeign` set to VK_TRUE for all elements of `pProcessingEngines`

Valid Usage (Implicit)

- VUID-VkCommandPoolCreateInfo-sType-sType
  `sType` must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO

- VUID-VkCommandPoolCreateInfo-pNext-pNext
  `pNext` must be `NULL` or a pointer to a valid instance of VkDataGraphProcessingEngineCreateInfoARM

- VUID-VkCommandPoolCreateInfo-sType-unique
  The `sType` value of each structure in the `pNext` chain must be unique

- VUID-VkCommandPoolCreateInfo-flags-parameter
  `flags` must be a valid combination of VkCommandPoolCreateFlagBits values

## See Also

VK_VERSION_1_0, VkCommandPoolCreateFlags, VkStructureType, vkCreateCommandPool

## 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