vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_maintenance10

Description

Name

VK_KHR_maintenance10 - device extension

VK_KHR_maintenance10

Name String
VK_KHR_maintenance10
Extension Type
Device extension
Registered Extension Number
631
Revision
1
Ratification Status
Ratified
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2 or Vulkan Version 1.1
API Interactions
  • Interacts with VK_VERSION_1_3
  • Interacts with VK_VERSION_1_4
  • Interacts with VK_KHR_copy_commands2
  • Interacts with VK_KHR_dynamic_rendering
  • Interacts with VK_KHR_dynamic_rendering_local_read
  • Interacts with VK_KHR_format_feature_flags2
Contact
Extension Proposal
VK_KHR_maintenance10

Other Extension Metadata

Last Modified Date
2025-05-13
Interactions and External Dependencies
  • This extension interacts with VK_KHR_format_feature_flags2
  • This extension interacts with VK_EXT_extended_dynamic_state3
  • This extension interacts with VK_KHR_dynamic_rendering_local_read
  • This extension interacts with VK_KHR_depth_stencil_resolve
Contributors
  • Mike Blumenkrantz, Valve
  • Piers Daniell, NVIDIA
  • Hans-Kristian Arntzen, Valve

Description

VK_KHR_maintenance10 adds a collection of minor features, none of which would warrant an entire extension of their own.

The new features are as follows:

  • New image format feature bits that indicate support for copying depth or stencil aspects using non-graphics queue families
  • If cmdSetSampleMaskEXT is called with pSampleMask set to NULL, it is treated as if the mask has all bits set to 1.
  • Add vkCmdEndRendering2KHR as an extensible version of vkCmdEndRendering
  • Add input attachment information to dynamic rendering
  • Require that vertex inputs follow sRGB encoding when those formats are used, instead of being underspecified.
  • Add a query to determine if sRGB images are resolved in nonlinear or linear space by default
  • Add an optional feature to allow applications to override the default sRGB resolve behavior
  • Add resolve mode and depth-stencil resolve support to cmdResolveImage2 to bring it in-line with render pass attachment resolves

New Commands

New Structures

New Enums

New Bitmasks

New Enum Constants

If Vulkan Version 1.4 or VK_KHR_dynamic_rendering_local_read and Vulkan Version 1.3 or VK_KHR_dynamic_rendering is supported:

If VK_KHR_format_feature_flags2 or Vulkan Version 1.3 is supported:

If Vulkan Version 1.3 or VK_KHR_copy_commands2 is supported:

If Vulkan Version 1.3 or VK_KHR_dynamic_rendering is supported:

Issues

None.

Version History

  • Revision 1, 2025-05-13 (Mike Blumenkrantz)

    • Initial revision

See Also

No cross-references are available

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

cmdEndRendering2KHR Source #

Arguments

:: forall (a :: [Type]) io. (Extendss RenderingEndInfoKHR a, PokeChain a, MonadIO io) 
=> CommandBuffer

commandBuffer is the command buffer in which to record the command.

-> ("renderingEndInfo" ::: Maybe (RenderingEndInfoKHR a))

pRenderingEndInfo is NULL or a pointer to a RenderingEndInfoKHR structure containing information about how the render pass will be ended.

-> io () 

vkCmdEndRendering2KHR - End a dynamic render pass instance

Description

If the value of pRenderingInfo->flags used to begin this render pass instance included RENDERING_SUSPENDING_BIT, then this render pass is suspended and will be resumed later in submission order.

There is no implicit ordering between separate render passes, even in the same command buffer, and even when the attachments match. Some applications rely on the continuation of rasterization order between multiple render passes with attachments defined in the same way, in order to perform non-rendering operations (such as copies or compute operations) between draw calls, but this has never been required by the specification. There is also no explicit barrier currently in the API that provides the guarantee that applications rely on without additional performance penalties.

New applications should avoid relying on this ordering until an appropriate barrier is added to the API.

Implementations where applications are performing this splitting are encouraged to continue supporting this guarantee until a suitable barrier is added to the API.

Existing applications relying on this ordering should expect that it will continue working on platforms where it currently does. Once a new extension adds support for a new barrier, developers are encouraged to adapt their applications to use this when available.

Valid Usage

  • The current render pass instance must have been begun in commandBuffer
  • This command must not be recorded when transform feedback is active
  • If cmdBeginQuery* was called within the render pass, the corresponding cmdEndQuery* must have been called subsequently within the same subpass

Valid Usage (Implicit)

  • If pRenderingEndInfo is not NULL, pRenderingEndInfo must be a valid pointer to a valid RenderingEndInfoKHR structure
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support QUEUE_GRAPHICS_BIT operations
  • This command must only be called inside of a render pass instance
  • This command must not be called between suspended render pass instances
  • This command must only be called outside of a video coding scope

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryInside Outside VK_QUEUE_GRAPHICS_BIT Action State

Conditional Rendering

vkCmdEndRendering2KHR is not affected by conditional rendering

See Also

VK_EXT_fragment_density_map_offset, VK_KHR_maintenance10, CommandBuffer, RenderingEndInfoKHR

data PhysicalDeviceMaintenance10PropertiesKHR Source #

VkPhysicalDeviceMaintenance10PropertiesKHR - Structure describing various implementation-defined properties introduced with VK_KHR_maintenance10

Description

Implementations supporting maintenance10 should set resolveSrgbFormatAppliesTransferFunction to TRUE.

If the PhysicalDeviceMaintenance10PropertiesKHR 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_KHR_maintenance10, Bool32, StructureType

Constructors

PhysicalDeviceMaintenance10PropertiesKHR 

Fields

  • rgba4OpaqueBlackSwizzled :: Bool

    rgba4OpaqueBlackSwizzled indicates whether correct swizzling is applied to the opaque black border color when using either the FORMAT_B4G4R4A4_UNORM_PACK16 or FORMAT_R4G4B4A4_UNORM_PACK16 format. If it is TRUE, the implementation will correctly produce an opaque black border color with these formats. If it is FALSE, the implementation may swap the first channel with the alpha channel for the border color when sampling.

  • resolveSrgbFormatAppliesTransferFunction :: Bool

    resolveSrgbFormatAppliesTransferFunction indicates whether resolving a multi-sampled sRGB format to single-sampled sRGB by a weighted average converts the samples to linear before averaging. This applies to both attachment resolves in a render pass and standalone resolve commands. If TRUE, implementation always converts to linear before averaging unless overridden. If FALSE, implementation never converts to linear before averaging unless overridden.

  • resolveSrgbFormatSupportsTransferFunctionControl :: Bool

    resolveSrgbFormatSupportsTransferFunctionControl indicates whether the implementation supports overriding the default behavior in resolveSrgbFormatAppliesTransferFunction in render passes and cmdResolveImage2.

Instances

Instances details
Eq PhysicalDeviceMaintenance10PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Storable PhysicalDeviceMaintenance10PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Show PhysicalDeviceMaintenance10PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

FromCStruct PhysicalDeviceMaintenance10PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

ToCStruct PhysicalDeviceMaintenance10PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Zero PhysicalDeviceMaintenance10PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

data PhysicalDeviceMaintenance10FeaturesKHR Source #

VkPhysicalDeviceMaintenance10FeaturesKHR - Structure describing whether the implementation supports maintenance10 functionality

Members

This structure describes the following feature:

Description

If the PhysicalDeviceMaintenance10FeaturesKHR 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. If the application wishes to use a Device with any features described by PhysicalDeviceMaintenance10FeaturesKHR, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Valid Usage (Implicit)

See Also

VK_KHR_maintenance10, Bool32, StructureType

Constructors

PhysicalDeviceMaintenance10FeaturesKHR 

Fields

  • maintenance10 :: Bool

    maintenance10 indicates that the implementation supports the following:

    • New image format feature bits that indicate support for copying depth or stencil aspects using non-graphics queue families
    • If cmdSetSampleMaskEXT is called with pSampleMask set to NULL, it is treated as if the mask has all bits set to 1.
    • Add cmdEndRendering2KHR as an extensible version of cmdEndRendering
    • Add input attachment information to dynamic rendering
    • Require that vertex inputs follow sRGB encoding when those formats are used, instead of being underspecified.
    • Add a query to determine if sRGB images are resolved in nonlinear or linear space by default
    • Add an optional feature to allow applications to override the default sRGB resolve behavior
    • Add resolve mode and depth-stencil resolve support to cmdResolveImage2 to bring it in-line with render pass attachment resolves

Instances

Instances details
Eq PhysicalDeviceMaintenance10FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Storable PhysicalDeviceMaintenance10FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Show PhysicalDeviceMaintenance10FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

FromCStruct PhysicalDeviceMaintenance10FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

ToCStruct PhysicalDeviceMaintenance10FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Zero PhysicalDeviceMaintenance10FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

data RenderingEndInfoKHR (es :: [Type]) Source #

VkRenderingEndInfoKHR - Structure specifying render pass end information

Valid Usage (Implicit)

See Also

VK_EXT_fragment_density_map_offset, VK_KHR_maintenance10, StructureType, cmdEndRendering2KHR, cmdEndRendering2KHR

Constructors

RenderingEndInfoKHR 

Fields

  • next :: Chain es

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

Instances

Instances details
Extensible RenderingEndInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Methods

extensibleTypeName :: String Source #

getNext :: forall (es :: [Type]). RenderingEndInfoKHR es -> Chain es Source #

setNext :: forall (ds :: [Type]) (es :: [Type]). RenderingEndInfoKHR ds -> Chain es -> RenderingEndInfoKHR es Source #

extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderingEndInfoKHR e => b) -> Maybe b Source #

Show (Chain es) => Show (RenderingEndInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

(Extendss RenderingEndInfoKHR es, PeekChain es) => FromCStruct (RenderingEndInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

(Extendss RenderingEndInfoKHR es, PokeChain es) => ToCStruct (RenderingEndInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

es ~ ('[] :: [Type]) => Zero (RenderingEndInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

data RenderingAttachmentFlagsInfoKHR Source #

Instances

Instances details
Eq RenderingAttachmentFlagsInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Storable RenderingAttachmentFlagsInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Show RenderingAttachmentFlagsInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

FromCStruct RenderingAttachmentFlagsInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

ToCStruct RenderingAttachmentFlagsInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Zero RenderingAttachmentFlagsInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

data ResolveImageModeInfoKHR Source #

VkResolveImageModeInfoKHR - Structure specifying additional control for VkResolveImageInfo2

Valid Usage

Valid Usage (Implicit)

See Also

VK_KHR_maintenance10, ResolveImageFlagsKHR, ResolveModeFlagBits, StructureType

Constructors

ResolveImageModeInfoKHR 

Fields

Instances

Instances details
Eq ResolveImageModeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Storable ResolveImageModeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Show ResolveImageModeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

FromCStruct ResolveImageModeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

ToCStruct ResolveImageModeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Zero ResolveImageModeInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

newtype RenderingAttachmentFlagBitsKHR Source #

VkRenderingAttachmentFlagBitsKHR - Bitmask specifying additional properties of a rendering attachment

Description

  • RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR specifies that the attachment can be used concurrently as both an input attachment and a write-only attachment during the render pass, creating a feedback loop while processing a fragment, and without a DEPENDENCY_BY_REGION_BIT barrier separating the write attachment and input attachment usage. Using this flag does not remove the general requirement to use a DEPENDENCY_BY_REGION_BIT barrier to resolve hazards when two different fragments accesses a particular attachment region, where one of them performs an attachment write, and a subsequent fragment performs an input attachment read. If RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR is specified in the rendering info, this flag must be set for an attachment to be used concurrently as an input attachment and a write attachment in this manner. If RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR is not specified in the rendering info, this flag is implied to be set for any attachment which has a combination of image layouts and image view usage flags which support input attachment usage.

RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR is intended to give implementations similar information as a subpass where an attachment could be used as both a color attachment and input attachment. Some implementations require extra work to make this scenario work beyond just considering the image layouts. Implementations which have no such considerations may treat this flag as a noop. The primary use case for this flag is to enable feedback loops inside a single shader.

Applications are encouraged to use RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR if maintenance10 is available and they use feedback loops with VK_KHR_dynamic_rendering_local_read. Feedback loops are still allowed when not using the rendering flag, but the performance implication was an oversight in the original definition of VK_KHR_dynamic_rendering_local_read.

In some scenarios, resolving sRGB in nonlinear space instead of the expected linear space can improve perceptual aliasing at the cost of inaccurate color blending.

See Also

VK_KHR_maintenance10, RenderingAttachmentFlagsKHR

Instances

Instances details
Bits RenderingAttachmentFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Methods

(.&.) :: RenderingAttachmentFlagBitsKHR -> RenderingAttachmentFlagBitsKHR -> RenderingAttachmentFlagBitsKHR #

(.|.) :: RenderingAttachmentFlagBitsKHR -> RenderingAttachmentFlagBitsKHR -> RenderingAttachmentFlagBitsKHR #

xor :: RenderingAttachmentFlagBitsKHR -> RenderingAttachmentFlagBitsKHR -> RenderingAttachmentFlagBitsKHR #

complement :: RenderingAttachmentFlagBitsKHR -> RenderingAttachmentFlagBitsKHR #

shift :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

rotate :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

zeroBits :: RenderingAttachmentFlagBitsKHR #

bit :: Int -> RenderingAttachmentFlagBitsKHR #

setBit :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

clearBit :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

complementBit :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

testBit :: RenderingAttachmentFlagBitsKHR -> Int -> Bool #

bitSizeMaybe :: RenderingAttachmentFlagBitsKHR -> Maybe Int #

bitSize :: RenderingAttachmentFlagBitsKHR -> Int #

isSigned :: RenderingAttachmentFlagBitsKHR -> Bool #

shiftL :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

unsafeShiftL :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

shiftR :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

unsafeShiftR :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

rotateL :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

rotateR :: RenderingAttachmentFlagBitsKHR -> Int -> RenderingAttachmentFlagBitsKHR #

popCount :: RenderingAttachmentFlagBitsKHR -> Int #

FiniteBits RenderingAttachmentFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Eq RenderingAttachmentFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Ord RenderingAttachmentFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Storable RenderingAttachmentFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Read RenderingAttachmentFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Show RenderingAttachmentFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Zero RenderingAttachmentFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

newtype ResolveImageFlagBitsKHR Source #

VkResolveImageFlagBitsKHR - Bitmask specifying additional properties of a resolve image operation

Description

See Also

VK_KHR_maintenance10, ResolveImageFlagsKHR

Instances

Instances details
Bits ResolveImageFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

FiniteBits ResolveImageFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Eq ResolveImageFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Ord ResolveImageFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Storable ResolveImageFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Read ResolveImageFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Show ResolveImageFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Zero ResolveImageFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

type KHR_MAINTENANCE_10_EXTENSION_NAME = "VK_KHR_maintenance10" Source #