vkUpdateIndirectExecutionSetShaderEXT(3)

# vkUpdateIndirectExecutionSetShaderEXT(3) Manual Page

## Name

vkUpdateIndirectExecutionSetShaderEXT - Update the contents of an indirect execution set

## C Specification

Shader object elements in an Indirect Execution Set can be updated by calling:

    // Provided by VK_EXT_device_generated_commands
    void vkUpdateIndirectExecutionSetShaderEXT(
        VkDevice                                    device,
        VkIndirectExecutionSetEXT                   indirectExecutionSet,
        uint32_t                                    executionSetWriteCount,
        const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);

## Parameters

- `device` is the logical device that owns the indirect execution set.

- `indirectExecutionSet` is the indirect execution set being updated.

- `executionSetWriteCount` is the number of elements in the `pExecutionSetWrites` array.

- `pExecutionSetWrites` is a pointer to an array of VkWriteIndirectExecutionSetShaderEXT structures describing the elements to update.

## Description

Valid Usage

- VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-11041
  `indirectExecutionSet` must have been created with type VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT

- VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-11043
  Each element in the `pExecutionSetWrites` array must have a unique `VkWriteIndirectExecutionSetShaderEXT`::`index`

- VUID-vkUpdateIndirectExecutionSetShaderEXT-None-11044
  Each member of the Indirect Execution Set referenced by the update command must not be in use by the device

- VUID-vkUpdateIndirectExecutionSetShaderEXT-pInitialShaders-11326
  If the shaders in `pInitialShaders` were created without VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT, each shader in `pExecutionSetWrites` must also have been created without VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT

- VUID-vkUpdateIndirectExecutionSetShaderEXT-pInitialShaders-11327
  If the shaders in `pInitialShaders` were created with VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT, each pipeline in `pExecutionSetWrites` must also have been created with VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT

- VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-11140
  If the shaders in `pInitialShaders` were created without VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT, the descriptor layout of each shader in `pExecutionSetWrites` must be compatible with the initial layout info used to create the Indirect Execution Set

- VUID-vkUpdateIndirectExecutionSetShaderEXT-None-11148
  Each fragment shader element in the Indirect Execution Set must have identically defined fragment outputs interface to the initial shader state used to create the Indirect Execution Set

- VUID-vkUpdateIndirectExecutionSetShaderEXT-FragDepth-11054
  Each fragment shader element in the Indirect Execution Set must match the initial shader state used to create the Indirect Execution Set in its use of `FragDepth`

- VUID-vkUpdateIndirectExecutionSetShaderEXT-SampleMask-11050
  Each fragment shader element in the Indirect Execution Set must match the initial shader state used to create the Indirect Execution Set in its use of `SampleMask`

- VUID-vkUpdateIndirectExecutionSetShaderEXT-StencilExportEXT-11003
  Each fragment shader element in the Indirect Execution Set must match the initial shader state used to create the Indirect Execution Set in its use of `StencilExportEXT`

Valid Usage (Implicit)

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

- VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-parameter
  `indirectExecutionSet` must be a valid VkIndirectExecutionSetEXT handle

- VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-parameter
  `pExecutionSetWrites` must be a valid pointer to an array of `executionSetWriteCount` valid VkWriteIndirectExecutionSetShaderEXT structures

- VUID-vkUpdateIndirectExecutionSetShaderEXT-executionSetWriteCount-arraylength
  `executionSetWriteCount` must be greater than `0`

- VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-parent
  `indirectExecutionSet` must have been created, allocated, or retrieved from `device`

Host Synchronization

- Host access to `indirectExecutionSet` must be externally synchronized

## See Also

VK_EXT_device_generated_commands, VkDevice, VkIndirectExecutionSetEXT, VkWriteIndirectExecutionSetShaderEXT

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