vulkan-3.21.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_pipeline_robustness

Description

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
Extension and Version Dependencies
  • Requires support for Vulkan 1.0
  • Requires VK_KHR_get_physical_device_properties2 to be enabled for any device-level functionality
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
Contributors
  • Jarred Davies, Imagination Technologies
  • Alex Walters, Imagination Technologies
  • Piers Daniell, NVIDIA
  • Graeme Leese, Broadcom Corporation
  • Jeff Leger, Qualcomm Technologies, Inc.
  • Jason Ekstrand, Intel
  • Lionel Landwerlin, Intel
  • Shahbaz Youssefi, Google, Inc.

Description

VK_EXT_pipeline_robustness 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

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

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

VK_EXT_pipeline_robustness, Bool32, StructureType

Constructors

PhysicalDevicePipelineRobustnessFeaturesEXT 

Fields

  • pipelineRobustness :: Bool

    pipelineRobustness indicates that robustness can be requested on a per-pipeline-stage granularity.

Instances

Instances details
Eq PhysicalDevicePipelineRobustnessFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Show PhysicalDevicePipelineRobustnessFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Storable PhysicalDevicePipelineRobustnessFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

FromCStruct PhysicalDevicePipelineRobustnessFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

ToCStruct PhysicalDevicePipelineRobustnessFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Zero PhysicalDevicePipelineRobustnessFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

data PipelineRobustnessCreateInfoEXT Source #

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

Description

Resources bound as DESCRIPTOR_TYPE_MUTABLE_VALVE 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.

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

Valid Usage

Valid Usage (Implicit)

See Also

VK_EXT_pipeline_robustness, PipelineRobustnessBufferBehaviorEXT, PipelineRobustnessImageBehaviorEXT, StructureType

Constructors

PipelineRobustnessCreateInfoEXT 

Fields

Instances

Instances details
Eq PipelineRobustnessCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Show PipelineRobustnessCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Storable PipelineRobustnessCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

FromCStruct PipelineRobustnessCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

ToCStruct PipelineRobustnessCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Zero PipelineRobustnessCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

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

Constructors

PhysicalDevicePipelineRobustnessPropertiesEXT 

Fields

Instances

Instances details
Eq PhysicalDevicePipelineRobustnessPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Show PhysicalDevicePipelineRobustnessPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Storable PhysicalDevicePipelineRobustnessPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

FromCStruct PhysicalDevicePipelineRobustnessPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

ToCStruct PhysicalDevicePipelineRobustnessPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Zero PhysicalDevicePipelineRobustnessPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

newtype PipelineRobustnessBufferBehaviorEXT Source #

VkPipelineRobustnessBufferBehaviorEXT - Enum controlling the robustness of buffer accesses in a pipeline stage

See Also

VK_EXT_pipeline_robustness, PhysicalDevicePipelineRobustnessPropertiesEXT, PipelineRobustnessCreateInfoEXT

Bundled Patterns

pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT :: PipelineRobustnessBufferBehaviorEXT

PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT specifies that this pipeline stage follows the robustness behavior of the logical device that created this pipeline

pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT :: PipelineRobustnessBufferBehaviorEXT

PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT specifies that buffer accesses by this pipeline stage to the relevant resource types must not be out of bounds

pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT :: PipelineRobustnessBufferBehaviorEXT

PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT specifies that out of bounds accesses by this pipeline stage to the relevant resource types behave as if the robustBufferAccess feature is enabled

pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT :: PipelineRobustnessBufferBehaviorEXT

PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT specifies that out of bounds accesses by this pipeline stage to the relevant resource types behave as if the robustBufferAccess2 feature is enabled

Instances

Instances details
Eq PipelineRobustnessBufferBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Ord PipelineRobustnessBufferBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Read PipelineRobustnessBufferBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Show PipelineRobustnessBufferBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Storable PipelineRobustnessBufferBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Zero PipelineRobustnessBufferBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

newtype PipelineRobustnessImageBehaviorEXT Source #

VkPipelineRobustnessImageBehaviorEXT - Enum controlling the robustness of image accesses in a pipeline stage

See Also

VK_EXT_pipeline_robustness, PhysicalDevicePipelineRobustnessPropertiesEXT, PipelineRobustnessCreateInfoEXT

Bundled Patterns

pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT :: PipelineRobustnessImageBehaviorEXT

PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT specifies that this pipeline stage follows the robustness behavior of the logical device that created this pipeline

pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT :: PipelineRobustnessImageBehaviorEXT

PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT specifies that image accesses by this pipeline stage to the relevant resource types must not be out of bounds

pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT :: PipelineRobustnessImageBehaviorEXT

PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT specifies that out of bounds accesses by this pipeline stage to images behave as if the robustImageAccess feature is enabled

pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT :: PipelineRobustnessImageBehaviorEXT

PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT specifies that out of bounds accesses by this pipeline stage to images behave as if the robustImageAccess2 feature is enabled

Instances

Instances details
Eq PipelineRobustnessImageBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Ord PipelineRobustnessImageBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Read PipelineRobustnessImageBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Show PipelineRobustnessImageBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Storable PipelineRobustnessImageBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

Zero PipelineRobustnessImageBehaviorEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_robustness

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 #