Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_EXT_pipeline_robustness - device extension
VK_EXT_pipeline_robustness
- Name String
VK_EXT_pipeline_robustness
- Extension Type
- Device extension
- Registered Extension Number
- 69
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2
- Contact
- Jarred Davies
Other Extension Metadata
- Last Modified Date
- 2022-07-12
- Interactions and External Dependencies
- Interacts with
VK_EXT_robustness2
- Interacts with
VK_EXT_image_robustness
- Interacts with
VK_KHR_ray_tracing_pipeline
- Interacts with
- Contributors
- Jarred Davies, Imagination Technologies
- Alex Walters, Imagination Technologies
- Piers Daniell, NVIDIA
- Graeme Leese, Broadcom Corporation
- Jeff Leger, Qualcomm Technologies, Inc.
- Faith Ekstrand, Intel
- Lionel Landwerlin, Intel
- Shahbaz Youssefi, Google, Inc.
Description
This extension allows users to request robustness on a per-pipeline stage basis.
As robustBufferAccess and other robustness features may have an adverse effect on performance, this extension is designed to allow users to request robust behavior only where it may be needed.
New Structures
Extending
GraphicsPipelineCreateInfo
,ComputePipelineCreateInfo
,PipelineShaderStageCreateInfo
,RayTracingPipelineCreateInfoKHR
:
Extending
PhysicalDeviceFeatures2
,DeviceCreateInfo
:Extending
PhysicalDeviceProperties2
:
New Enums
New Enum Constants
Version History
Revision 1, 2022-07-12 (Jarred Davies)
- Initial version
See Also
PhysicalDevicePipelineRobustnessFeaturesEXT
,
PhysicalDevicePipelineRobustnessPropertiesEXT
,
PipelineRobustnessBufferBehaviorEXT
,
PipelineRobustnessCreateInfoEXT
, PipelineRobustnessImageBehaviorEXT
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- data PhysicalDevicePipelineRobustnessFeaturesEXT = PhysicalDevicePipelineRobustnessFeaturesEXT {}
- data PipelineRobustnessCreateInfoEXT = PipelineRobustnessCreateInfoEXT {}
- data PhysicalDevicePipelineRobustnessPropertiesEXT = PhysicalDevicePipelineRobustnessPropertiesEXT {}
- newtype PipelineRobustnessBufferBehaviorEXT where
- PipelineRobustnessBufferBehaviorEXT Int32
- pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT :: PipelineRobustnessBufferBehaviorEXT
- pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT :: PipelineRobustnessBufferBehaviorEXT
- pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT :: PipelineRobustnessBufferBehaviorEXT
- pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT :: PipelineRobustnessBufferBehaviorEXT
- newtype PipelineRobustnessImageBehaviorEXT where
- PipelineRobustnessImageBehaviorEXT Int32
- pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT :: PipelineRobustnessImageBehaviorEXT
- pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT :: PipelineRobustnessImageBehaviorEXT
- pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT :: PipelineRobustnessImageBehaviorEXT
- pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT :: PipelineRobustnessImageBehaviorEXT
- type EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1
- pattern EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION :: forall a. Integral a => a
- type EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness"
- pattern EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
data PhysicalDevicePipelineRobustnessFeaturesEXT Source #
VkPhysicalDevicePipelineRobustnessFeaturesEXT - Structure describing whether an implementation supports robustness requests on a per-pipeline stage granularity
Members
This structure describes the following feature:
Description
Note
Enabling pipelineRobustness may, on some platforms, incur a minor performance cost when robustBufferAccess is disabled, even for pipelines which do not make use of any robustness features. If robustness is not needed, pipelineRobustness should not be enabled by an application.
If the PhysicalDevicePipelineRobustnessFeaturesEXT
structure is
included in the pNext
chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2
,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDevicePipelineRobustnessFeaturesEXT
can also be
used in the pNext
chain of DeviceCreateInfo
to
selectively enable these features.
Valid Usage (Implicit)
See Also
Instances
data PipelineRobustnessCreateInfoEXT Source #
VkPipelineRobustnessCreateInfoEXT - Structure controlling the robustness of a newly created pipeline shader stage
Description
Resources bound as
DESCRIPTOR_TYPE_MUTABLE_EXT
will
have the robustness behavior that covers its active descriptor type.
The scope of the effect of PipelineRobustnessCreateInfoEXT
depends on
which structure’s pNext
chain it is included in.
GraphicsPipelineCreateInfo
,RayTracingPipelineCreateInfoKHR
,ComputePipelineCreateInfo
: The robustness behavior described byPipelineRobustnessCreateInfoEXT
applies to all accesses through this pipelinePipelineShaderStageCreateInfo
: The robustness behavior described byPipelineRobustnessCreateInfoEXT
applies to all accesses emanating from the shader code of this shader stage
If PipelineRobustnessCreateInfoEXT
is specified for both a pipeline
and a pipeline stage, the PipelineRobustnessCreateInfoEXT
specified
for the pipeline stage will take precedence.
When PipelineRobustnessCreateInfoEXT
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
GraphicsPipelineCreateInfo
, that subset is
specified by
GraphicsPipelineLibraryCreateInfoEXT
::flags
.
For
RayTracingPipelineCreateInfoKHR
,
that subset is specified by the specific stages in
RayTracingPipelineCreateInfoKHR
::pStages
.
Valid Usage
- If
the
pipelineRobustness
feature is not enabled,
storageBuffers
must bePIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
- If
the
pipelineRobustness
feature is not enabled,
uniformBuffers
must bePIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
- If
the
pipelineRobustness
feature is not enabled,
vertexInputs
must bePIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
- If
the
pipelineRobustness
feature is not enabled,
images
must bePIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT
- If
the
robustImageAccess
feature is not supported,
images
must not bePIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT
-
If the
robustBufferAccess2
feature is not supported,
storageBuffers
must not bePIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
-
If the
robustBufferAccess2
feature is not supported,
uniformBuffers
must not bePIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
-
If the
robustBufferAccess2
feature is not supported,
vertexInputs
must not bePIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
- If
the
robustImageAccess2
feature is not supported,
images
must not bePIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
-
storageBuffers
must be a validPipelineRobustnessBufferBehaviorEXT
value -
uniformBuffers
must be a validPipelineRobustnessBufferBehaviorEXT
value -
vertexInputs
must be a validPipelineRobustnessBufferBehaviorEXT
value -
images
must be a validPipelineRobustnessImageBehaviorEXT
value
See Also
VK_EXT_pipeline_robustness,
PipelineRobustnessBufferBehaviorEXT
,
PipelineRobustnessImageBehaviorEXT
,
StructureType
PipelineRobustnessCreateInfoEXT | |
|
Instances
data PhysicalDevicePipelineRobustnessPropertiesEXT Source #
VkPhysicalDevicePipelineRobustnessPropertiesEXT - Structure describing the default robustness behavior of a physical device
Description
Some implementations of Vulkan may be able to guarantee that certain types of accesses are always performed with robustness even when the Vulkan API’s robustness features are not explicitly enabled.
Even when an implementation reports that accesses to a given resource type are robust by default, it remains invalid to make an out of bounds access without requesting the appropriate robustness feature.
If the PhysicalDevicePipelineRobustnessPropertiesEXT
structure is
included in the pNext
chain of the
PhysicalDeviceProperties2
structure passed to
getPhysicalDeviceProperties2
,
it is filled in with each corresponding implementation-dependent
property.
Valid Usage (Implicit)
See Also
VK_EXT_pipeline_robustness,
PipelineRobustnessBufferBehaviorEXT
,
PipelineRobustnessImageBehaviorEXT
,
StructureType
PhysicalDevicePipelineRobustnessPropertiesEXT | |
|
Instances
newtype PipelineRobustnessBufferBehaviorEXT Source #
VkPipelineRobustnessBufferBehaviorEXT - Enum controlling the robustness of buffer accesses in a pipeline stage
See Also
VK_EXT_pipeline_robustness,
PhysicalDevicePipelineRobustnessPropertiesEXT
,
PipelineRobustnessCreateInfoEXT
Instances
newtype PipelineRobustnessImageBehaviorEXT Source #
VkPipelineRobustnessImageBehaviorEXT - Enum controlling the robustness of image accesses in a pipeline stage
See Also
VK_EXT_pipeline_robustness,
PhysicalDevicePipelineRobustnessPropertiesEXT
,
PipelineRobustnessCreateInfoEXT
Instances
type EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 Source #
pattern EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" Source #
pattern EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #