VkPipelineRobustnessCreateInfo
The VkPipelineRobustnessCreateInfo structure is defined as:
typedef struct VkPipelineRobustnessCreateInfo {
VkStructureType sType;
const void* pNext;
VkPipelineRobustnessBufferBehavior storageBuffers;
VkPipelineRobustnessBufferBehavior uniformBuffers;
VkPipelineRobustnessBufferBehavior vertexInputs;
VkPipelineRobustnessImageBehavior images;
} VkPipelineRobustnessCreateInfo;
or the equivalent
typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.storageBufferssets the behavior of out of bounds accesses made to resources bound as:VK_DESCRIPTOR_TYPE_STORAGE_BUFFERVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
uniformBuffersdescribes the behavior of out of bounds accesses made to resources bound as:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMICVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
vertexInputsdescribes the behavior of out of bounds accesses made to vertex input attributesimagesdescribes the behavior of out of bounds accesses made to resources bound as:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGEVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
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 VkPipelineRobustnessCreateInfo depends on
which structure’s pNext chain it is included in.
VkGraphicsPipelineCreateInfo,VkRayTracingPipelineCreateInfoKHR,VkComputePipelineCreateInfo:\
The robustness behavior described byVkPipelineRobustnessCreateInfoapplies to all accesses through this pipelineVkPipelineShaderStageCreateInfo:\
The robustness behavior described byVkPipelineRobustnessCreateInfoapplies to all accesses emanating from the shader code of this shader stage
If VkPipelineRobustnessCreateInfo is specified for both a pipeline and
a pipeline stage, the VkPipelineRobustnessCreateInfo specified for the
pipeline stage will take precedence.
When VkPipelineRobustnessCreateInfo 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-VkPipelineRobustnessCreateInfo-pipelineRobustness-06926
If the pipelineRobustness feature
is not enabled, storageBuffers must be
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT
VUID-VkPipelineRobustnessCreateInfo-pipelineRobustness-06927
If the pipelineRobustness feature
is not enabled, uniformBuffers must be
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT
VUID-VkPipelineRobustnessCreateInfo-pipelineRobustness-06928
If the pipelineRobustness feature
is not enabled, vertexInputs must be
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT
VUID-VkPipelineRobustnessCreateInfo-pipelineRobustness-06929
If the pipelineRobustness feature
is not enabled, images must be
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT
VUID-VkPipelineRobustnessCreateInfo-robustImageAccess-06930
If the robustImageAccess feature
is not supported, images must not be
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS
VUID-VkPipelineRobustnessCreateInfo-robustBufferAccess2-06931
If the robustBufferAccess2
feature is not supported, storageBuffers must not be
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2
VUID-VkPipelineRobustnessCreateInfo-robustBufferAccess2-06932
If the robustBufferAccess2
feature is not supported, uniformBuffers must not be
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2
VUID-VkPipelineRobustnessCreateInfo-robustBufferAccess2-06933
If the robustBufferAccess2
feature is not supported, vertexInputs must not be
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2
VUID-VkPipelineRobustnessCreateInfo-robustImageAccess2-06934
If the robustImageAccess2 feature
is not supported, images must not be
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2
VUID-VkPipelineRobustnessCreateInfo-storageBuffers-10636
If storageBuffers is
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2, and
either descriptorBindingStorageBufferUpdateAfterBind or
descriptorBindingStorageTexelBufferUpdateAfterBind is enabled on
the device, robustBufferAccessUpdateAfterBind must be VK_TRUE
VUID-VkPipelineRobustnessCreateInfo-uniformBuffers-10637
If uniformBuffers is
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2, and
either
descriptorBindingInlineUniformBlockUpdateAfterBind,
descriptorBindingUniformBufferUpdateAfterBind or
descriptorBindingUniformTexelBufferUpdateAfterBind is enabled on
the device, robustBufferAccessUpdateAfterBind must be VK_TRUE
VUID-VkPipelineRobustnessCreateInfo-images-10638
If images is
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS or
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2, and
either descriptorBindingStorageImageUpdateAfterBind or
descriptorBindingSampledImageUpdateAfterBind is enabled on the
device, robustBufferAccessUpdateAfterBind must be VK_TRUE
Valid Usage (Implicit)
VUID-VkPipelineRobustnessCreateInfo-sType-sType
sType must be VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO
VUID-VkPipelineRobustnessCreateInfo-storageBuffers-parameter
storageBuffers must be a valid VkPipelineRobustnessBufferBehavior value
VUID-VkPipelineRobustnessCreateInfo-uniformBuffers-parameter
uniformBuffers must be a valid VkPipelineRobustnessBufferBehavior value
VUID-VkPipelineRobustnessCreateInfo-vertexInputs-parameter
vertexInputs must be a valid VkPipelineRobustnessBufferBehavior value
VUID-VkPipelineRobustnessCreateInfo-images-parameter
images must be a valid VkPipelineRobustnessImageBehavior value