VkPipelineRobustnessCreateInfoEXT(3)

# VkPipelineRobustnessCreateInfoEXT(3) Manual Page

## Name

VkPipelineRobustnessCreateInfoEXT - Structure controlling the robustness of a newly created pipeline shader stage

Loading… please wait.

## C Specification

The `VkPipelineRobustnessCreateInfoEXT` structure is defined as:

    // Provided by VK_EXT_pipeline_robustness
    typedef struct VkPipelineRobustnessCreateInfoEXT {
        VkStructureType                          sType;
        const void*                              pNext;
        VkPipelineRobustnessBufferBehaviorEXT    storageBuffers;
        VkPipelineRobustnessBufferBehaviorEXT    uniformBuffers;
        VkPipelineRobustnessBufferBehaviorEXT    vertexInputs;
        VkPipelineRobustnessImageBehaviorEXT     images;
    } VkPipelineRobustnessCreateInfoEXT;

## Members

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

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

- `storageBuffers` sets the behaviour of out of bounds accesses made to resources bound as:

  - `VK_DESCRIPTOR_TYPE_STORAGE_BUFFER`

  - `VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER`

  - `VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC`

- `uniformBuffers` describes the behaviour of out of bounds accesses made to resources bound as:

  - `VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER`

  - `VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER`

  - `VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC`

  - `VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK`

- `vertexInputs` describes the behaviour of out of bounds accesses made to vertex input attributes

- `images` describes the behaviour of out of bounds accesses made to resources bound as:

  - `VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE`

  - `VK_DESCRIPTOR_TYPE_STORAGE_IMAGE`

## Description

Resources bound as `VK_DESCRIPTOR_TYPE_MUTABLE_EXT` will have the robustness behavior that covers its active descriptor type.

The scope of the effect of `VkPipelineRobustnessCreateInfoEXT` depends on which structure’s `pNext` chain it is included in.

- `VkGraphicsPipelineCreateInfo`, `VkRayTracingPipelineCreateInfoKHR`, `VkComputePipelineCreateInfo`:
  The robustness behavior described by `VkPipelineRobustnessCreateInfoEXT` applies to all accesses through this pipeline

- `VkPipelineShaderStageCreateInfo`:
  The robustness behavior described by `VkPipelineRobustnessCreateInfoEXT` applies to all accesses emanating from the shader code of this shader stage

If `VkPipelineRobustnessCreateInfoEXT` is specified for both a pipeline and a pipeline stage, the `VkPipelineRobustnessCreateInfoEXT` specified for the pipeline stage will take precedence.

When `VkPipelineRobustnessCreateInfoEXT` is specified for a pipeline, it only affects the subset of the pipeline that is specified by the create info, as opposed to subsets linked from pipeline libraries. For VkGraphicsPipelineCreateInfo, that subset is specified by VkGraphicsPipelineLibraryCreateInfoEXT::`flags`. For VkRayTracingPipelineCreateInfoKHR, that subset is specified by the specific stages in VkRayTracingPipelineCreateInfoKHR::`pStages`.

Valid Usage

- VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06926
  If the `pipelineRobustness` feature is not enabled, `storageBuffers` must be `VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT`

- VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06927
  If the `pipelineRobustness` feature is not enabled, `uniformBuffers` must be `VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT`

- VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06928
  If the `pipelineRobustness` feature is not enabled, `vertexInputs` must be `VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT`

- VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06929
  If the `pipelineRobustness` feature is not enabled, `images` must be `VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT`

- VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess-06930
  If the `robustImageAccess` feature is not supported, `images` must not be `VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT`

- VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06931
  If the `robustBufferAccess2` feature is not supported, `storageBuffers` must not be `VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT`

- VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06932
  If the `robustBufferAccess2` feature is not supported, `uniformBuffers` must not be `VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT`

- VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06933
  If the `robustBufferAccess2` feature is not supported, `vertexInputs` must not be `VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT`

- VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess2-06934
  If the `robustImageAccess2` feature is not supported, `images` must not be `VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT`

Valid Usage (Implicit)

- VUID-VkPipelineRobustnessCreateInfoEXT-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT`

- VUID-VkPipelineRobustnessCreateInfoEXT-storageBuffers-parameter
  `storageBuffers` must be a valid VkPipelineRobustnessBufferBehaviorEXT value

- VUID-VkPipelineRobustnessCreateInfoEXT-uniformBuffers-parameter
  `uniformBuffers` must be a valid VkPipelineRobustnessBufferBehaviorEXT value

- VUID-VkPipelineRobustnessCreateInfoEXT-vertexInputs-parameter
  `vertexInputs` must be a valid VkPipelineRobustnessBufferBehaviorEXT value

- VUID-VkPipelineRobustnessCreateInfoEXT-images-parameter
  `images` must be a valid VkPipelineRobustnessImageBehaviorEXT value

## See Also

VK_EXT_pipeline_robustness, VkPipelineRobustnessBufferBehaviorEXT, VkPipelineRobustnessImageBehaviorEXT, 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-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0