C Specification

The VkComputePipelineCreateInfo structure is defined as:

// Provided by VK_VERSION_1_0
typedef struct VkComputePipelineCreateInfo {
    VkStructureType                    sType;
    const void*                        pNext;
    VkPipelineCreateFlags              flags;
    VkPipelineShaderStageCreateInfo    stage;
    VkPipelineLayout                   layout;
    VkPipeline                         basePipelineHandle;
    int32_t                            basePipelineIndex;
} VkComputePipelineCreateInfo;

Members

Description

The parameters basePipelineHandle and basePipelineIndex are described in more detail in Pipeline Derivatives.

Valid Usage
  • VUID-VkComputePipelineCreateInfo-None-09497
    flags must be a valid combination of VkPipelineCreateFlagBits values

  • VUID-VkComputePipelineCreateInfo-basePipelineHandle-05024
    basePipelineHandle must be VK_NULL_HANDLE

  • VUID-VkComputePipelineCreateInfo-basePipelineIndex-05025
    basePipelineIndex must be zero

  • VUID-VkComputePipelineCreateInfo-layout-07987
    If a push constant block is declared in a shader and layout is not VK_NULL_HANDLE, a push constant range in layout must match the shader stage

  • VUID-VkComputePipelineCreateInfo-layout-10069
    If a push constant block is declared in a shader and layout is not VK_NULL_HANDLE, the block must be contained inside the push constant range in layout that matches the stage

  • VUID-VkComputePipelineCreateInfo-layout-07988
    If a resource variable is declared in a shader and layout is not VK_NULL_HANDLE, the corresponding descriptor set in layout must match the shader stage

  • VUID-VkComputePipelineCreateInfo-layout-07990
    If a resource variable is declared in a shader, layout is not VK_NULL_HANDLE, the corresponding descriptor set in layout must match the descriptor type

  • VUID-VkComputePipelineCreateInfo-layout-07991
    If a resource variable is declared in a shader as an array and layout is not VK_NULL_HANDLE, the corresponding descriptor binding used to create layout must have a descriptorCount that is greater than or equal to the length of the array

  • VUID-VkComputePipelineCreateInfo-stage-00701
    The stage member of stage must be VK_SHADER_STAGE_COMPUTE_BIT

  • VUID-VkComputePipelineCreateInfo-stage-00702
    The shader code for the entry point identified by stage and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter

  • VUID-VkComputePipelineCreateInfo-layout-01687
    If layout is not VK_NULL_HANDLE, the number of resources in layout accessible to the compute shader stage must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources

  • VUID-VkComputePipelineCreateInfo-None-11367
    layout must not be VK_NULL_HANDLE

Valid Usage (Implicit)
  • VUID-VkComputePipelineCreateInfo-sType-sType
    sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO

  • VUID-VkComputePipelineCreateInfo-pNext-pNext
    pNext must be NULL or a pointer to a valid instance of VkPipelineOfflineCreateInfo

  • VUID-VkComputePipelineCreateInfo-sType-unique
    The sType value of each structure in the pNext chain must be unique

  • VUID-VkComputePipelineCreateInfo-stage-parameter
    stage must be a valid VkPipelineShaderStageCreateInfo structure

  • VUID-VkComputePipelineCreateInfo-layout-parameter
    If layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle

  • VUID-VkComputePipelineCreateInfo-commonparent
    Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice

See Also

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 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0