vkCreateExecutionGraphPipelinesAMDX(3)

# vkCreateExecutionGraphPipelinesAMDX(3) Manual Page

## Name

vkCreateExecutionGraphPipelinesAMDX - Creates a new execution graph pipeline object

## C Specification

To create execution graph pipelines, call:

    // Provided by VK_AMDX_shader_enqueue
    VkResult vkCreateExecutionGraphPipelinesAMDX(
        VkDevice                                    device,
        VkPipelineCache                             pipelineCache,
        uint32_t                                    createInfoCount,
        const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos,
        const VkAllocationCallbacks*                pAllocator,
        VkPipeline*                                 pPipelines);

## Parameters

- `device` is the logical device that creates the execution graph pipelines.

- `pipelineCache` is either VK_NULL_HANDLE, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command. The implementation must not access this object outside of the duration of this command.

- `createInfoCount` is the length of the `pCreateInfos` and `pPipelines` arrays.

- `pCreateInfos` is a pointer to an array of VkExecutionGraphPipelineCreateInfoAMDX structures.

- `pAllocator` controls host memory allocation as described in the Memory Allocation chapter.

- `pPipelines` is a pointer to an array of VkPipeline handles in which the resulting execution graph pipeline objects are returned.

## Description

Pipelines are created and returned as described for Multiple Pipeline Creation.

Valid Usage

- VUID-vkCreateExecutionGraphPipelinesAMDX-shaderEnqueue-09124
  The `shaderEnqueue` feature must be enabled

- VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09125
  If the `flags` member of any element of `pCreateInfos` contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the `basePipelineIndex` member of that same element is not `-1`, `basePipelineIndex` must be less than the index into `pCreateInfos` that corresponds to that element

- VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09126
  If the `flags` member of any element of `pCreateInfos` contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set

- VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-09127
  If `pipelineCache` was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to `pipelineCache` must be externally synchronized

- VUID-vkCreateExecutionGraphPipelinesAMDX-pNext-09616
  If VkPipelineBinaryInfoKHR::`binaryCount` is not `0` for any element of `pCreateInfos`, `pipelineCache` must be VK_NULL_HANDLE

- VUID-vkCreateExecutionGraphPipelinesAMDX-pNext-09617
  If a VkPipelineCreateFlags2CreateInfoKHR structure with the VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag set is included in the `pNext` chain of any element of `pCreateInfos`, `pipelineCache` must be VK_NULL_HANDLE

- VUID-vkCreateExecutionGraphPipelinesAMDX-binaryCount-09620
  If VkPipelineBinaryInfoKHR::`binaryCount` is not `0` for any element of `pCreateInfos`, VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT must not be set in the `flags` of that element

- VUID-vkCreateExecutionGraphPipelinesAMDX-binaryCount-09621
  If VkPipelineBinaryInfoKHR::`binaryCount` is not `0` for any element of `pCreateInfos`, VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT must not be set in the `flags` of that element

- VUID-vkCreateExecutionGraphPipelinesAMDX-binaryCount-09622
  If VkPipelineBinaryInfoKHR::`binaryCount` is not `0` for any element of `pCreateInfos`, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT must not be set in the `flags` of that element

- VUID-vkCreateExecutionGraphPipelinesAMDX-pCreateInfos-11414
  If any element of `pCreateInfos` sets VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT and includes embedded sampler mappings, there must be less than (`maxSamplerAllocationCount` - (`minSamplerHeapReservedRangeWithEmbedded` / `samplerDescriptorSize`)) VkSampler objects currently created on the device

- VUID-vkCreateExecutionGraphPipelinesAMDX-pCreateInfos-11429
  If any element of `pCreateInfos` sets VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT and includes embedded sampler mappings, this command must not cause the total number of unique embedded samplers in pipelines and shaders on this device to exceed `maxDescriptorHeapEmbeddedSamplers`

Valid Usage (Implicit)

- VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter
  `device` must be a valid VkDevice handle

- VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parameter
  If `pipelineCache` is not VK_NULL_HANDLE, `pipelineCache` must be a valid VkPipelineCache handle

- VUID-vkCreateExecutionGraphPipelinesAMDX-pCreateInfos-parameter
  `pCreateInfos` must be a valid pointer to an array of `createInfoCount` valid VkExecutionGraphPipelineCreateInfoAMDX structures

- VUID-vkCreateExecutionGraphPipelinesAMDX-pAllocator-parameter
  If `pAllocator` is not `NULL`, `pAllocator` must be a valid pointer to a valid VkAllocationCallbacks structure

- VUID-vkCreateExecutionGraphPipelinesAMDX-pPipelines-parameter
  `pPipelines` must be a valid pointer to an array of `createInfoCount` VkPipeline handles

- VUID-vkCreateExecutionGraphPipelinesAMDX-createInfoCount-arraylength
  `createInfoCount` must be greater than `0`

- VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parent
  If `pipelineCache` is a valid handle, it must have been created, allocated, or retrieved from `device`

Return Codes

On success, this command returns

  - VK_PIPELINE_COMPILE_REQUIRED_EXT

  - VK_SUCCESS

On failure, this command returns

  - VK_ERROR_OUT_OF_DEVICE_MEMORY

  - VK_ERROR_OUT_OF_HOST_MEMORY

  - VK_ERROR_UNKNOWN

  - VK_ERROR_VALIDATION_FAILED

## See Also

VK_AMDX_shader_enqueue, VkAllocationCallbacks, VkDevice, VkExecutionGraphPipelineCreateInfoAMDX, VkPipeline, VkPipelineCache

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