Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_KHR_maintenance5 - device extension
VK_KHR_maintenance5
- Name String
VK_KHR_maintenance5
- Extension Type
- Device extension
- Registered Extension Number
- 471
- Revision
- 1
- Ratification Status
- Ratified
- Extension and Version Dependencies
- Version 1.1 and VK_KHR_dynamic_rendering
- Contact
- Extension Proposal
- VK_KHR_maintenance5
Other Extension Metadata
- Last Modified Date
- 2023-05-02
- Interactions and External Dependencies; Contributors
- Stu Smith, AMD
- Tobias Hector, AMD
- Shahbaz Youssefi, Google
- Slawomir Cygan, Intel
- Lionel Landwerlin, Intel
- James Fitzpatrick, Imagination Technologies
- Andrew Garrard, Imagination Technologies
- Ralph Potter, Samsung
- Pan Gao, Huawei
- Jan-Harald Fredriksen, ARM
- Jon Leech, Khronos
- Mike Blumenkrantz, Valve
Description
VK_KHR_maintenance5
adds a collection of minor features, none of which
would warrant an entire extension of their own.
The new features are as follows:
- A new
FORMAT_A1B5G5R5_UNORM_PACK16_KHR
format - A new
FORMAT_A8_UNORM_KHR
format - A property to indicate that multisample coverage operations are performed after sample counting in EarlyFragmentTests mode
- Relax VkBufferView creation requirements by allowing subsets of the
associated VkBuffer usage using
BufferUsageFlags2CreateInfoKHR
- A new entry point
cmdBindIndexBuffer2KHR
, allowing a range of memory to be bound as an index buffer getDeviceProcAddr
must returnNULL
for supported core functions beyond the version requested by the application.- A property to indicate that the sample mask test is performed after sample counting in EarlyFragmentTests mode
cmdBindVertexBuffers2
now supports usingWHOLE_SIZE
in thepSizes
parameter.- A default size of 1.0 is used if
PointSize
is not written - Shader modules are deprecated - applications can now pass
ShaderModuleCreateInfo
as a chained struct to pipeline creation viaPipelineShaderStageCreateInfo
- A function
getRenderingAreaGranularityKHR
to query the optimal render area for a dynamic rendering instance. - A property to indicate that depth/stencil texturing operations with
COMPONENT_SWIZZLE_ONE
have defined behavior - Add
getImageSubresourceLayout2KHR
and a new functiongetDeviceImageSubresourceLayoutKHR
to allow the application to query the image memory layout without having to create an image object and query it. - Allow
REMAINING_ARRAY_LAYERS
as thelayerCount
member ofImageSubresourceLayers
- Adds stronger guarantees for propagation of
ERROR_DEVICE_LOST
return values - A property to indicate whether
PointSize
controls the final rasterization of polygons if polygon mode isPOLYGON_MODE_POINT
- Two properties to indicate the non-strict line rasterization algorithm used
- Two new flags words
PipelineCreateFlagBits2KHR
andBufferUsageFlagBits2KHR
- Physical-device-level functions can now be called with any value in the valid range for a type beyond the defined enumerants, such that applications can avoid checking individual features, extensions, or versions before querying supported properties of a particular enumerant.
- Clarification that copies between images of any type are allowed, treating 1D images as 2D images with a height of 1.
New Commands
New Structures
ImageSubresource2KHR
RenderingAreaInfoKHR
SubresourceLayout2KHR
Extending
BufferViewCreateInfo
,BufferCreateInfo
,PhysicalDeviceExternalBufferInfo
,DescriptorBufferBindingInfoEXT
:Extending
ComputePipelineCreateInfo
,GraphicsPipelineCreateInfo
,RayTracingPipelineCreateInfoNV
,RayTracingPipelineCreateInfoKHR
:Extending
PhysicalDeviceFeatures2
,DeviceCreateInfo
:Extending
PhysicalDeviceProperties2
:
New Enums
New Bitmasks
New Enum Constants
KHR_MAINTENANCE_5_SPEC_VERSION
Extending
Format
:Extending
StructureType
:STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR
STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR
STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR
STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR
STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR
STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
If VK_EXT_attachment_feedback_loop_layout is supported:
Extending
PipelineCreateFlagBits2KHR
:
If VK_EXT_conditional_rendering is supported:
If VK_EXT_descriptor_buffer is supported:
Extending
BufferUsageFlagBits2KHR
:Extending
PipelineCreateFlagBits2KHR
:
If VK_EXT_graphics_pipeline_library is supported:
Extending
PipelineCreateFlagBits2KHR
:
If VK_EXT_opacity_micromap is supported:
Extending
BufferUsageFlagBits2KHR
:Extending
PipelineCreateFlagBits2KHR
:
If VK_EXT_pipeline_protected_access is supported:
Extending
PipelineCreateFlagBits2KHR
:
If VK_EXT_transform_feedback is supported:
Extending
BufferUsageFlagBits2KHR
:
If VK_KHR_acceleration_structure is supported:
Extending
BufferUsageFlagBits2KHR
:
If VK_KHR_dynamic_rendering and VK_EXT_fragment_density_map is supported:
Extending
PipelineCreateFlagBits2KHR
:
If VK_KHR_dynamic_rendering and VK_KHR_fragment_shading_rate is supported:
Extending
PipelineCreateFlagBits2KHR
:
If VK_KHR_pipeline_executable_properties is supported:
Extending
PipelineCreateFlagBits2KHR
:
If VK_KHR_pipeline_library is supported:
If VK_KHR_ray_tracing_pipeline is supported:
Extending
BufferUsageFlagBits2KHR
:Extending
PipelineCreateFlagBits2KHR
:PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR
PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
If VK_KHR_video_decode_queue is supported:
Extending
BufferUsageFlagBits2KHR
:
If VK_KHR_video_encode_queue is supported:
Extending
BufferUsageFlagBits2KHR
:
If VK_NV_device_generated_commands is supported:
If VK_NV_displacement_micromap is supported:
If VK_NV_ray_tracing is supported:
Extending
BufferUsageFlagBits2KHR
:Extending
PipelineCreateFlagBits2KHR
:
If VK_NV_ray_tracing_motion_blur is supported:
If Version 1.1 or VK_KHR_device_group is supported:
Extending
PipelineCreateFlagBits2KHR
:
If Version 1.2 or VK_KHR_buffer_device_address or VK_EXT_buffer_device_address is supported:
If Version 1.3 or VK_EXT_pipeline_creation_cache_control is supported:
Extending
PipelineCreateFlagBits2KHR
:
Issues
None.
Version History
Revision 1, 2022-12-12 (Stu Smith)
- Initial revision
See Also
DeviceImageSubresourceInfoKHR
, ImageSubresource2KHR
,
PhysicalDeviceMaintenance5FeaturesKHR
,
PhysicalDeviceMaintenance5PropertiesKHR
, RenderingAreaInfoKHR
,
SubresourceLayout2KHR
, cmdBindIndexBuffer2KHR
,
getDeviceImageSubresourceLayoutKHR
, getImageSubresourceLayout2KHR
,
getRenderingAreaGranularityKHR
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
- getRenderingAreaGranularityKHR :: forall io. MonadIO io => Device -> RenderingAreaInfoKHR -> io ("granularity" ::: Extent2D)
- cmdBindIndexBuffer2KHR :: forall io. MonadIO io => CommandBuffer -> Buffer -> ("offset" ::: DeviceSize) -> DeviceSize -> IndexType -> io ()
- getImageSubresourceLayout2KHR :: forall a io. (Extendss SubresourceLayout2KHR a, PokeChain a, PeekChain a, MonadIO io) => Device -> Image -> ImageSubresource2KHR -> io (SubresourceLayout2KHR a)
- getDeviceImageSubresourceLayoutKHR :: forall a io. (Extendss SubresourceLayout2KHR a, PokeChain a, PeekChain a, MonadIO io) => Device -> DeviceImageSubresourceInfoKHR -> io (SubresourceLayout2KHR a)
- pattern BUFFER_USAGE_2_RAY_TRACING_BIT_NV :: BufferUsageFlagBits2KHR
- data BufferUsageFlags2CreateInfoKHR = BufferUsageFlags2CreateInfoKHR {}
- data PipelineCreateFlags2CreateInfoKHR = PipelineCreateFlags2CreateInfoKHR {}
- data PhysicalDeviceMaintenance5FeaturesKHR = PhysicalDeviceMaintenance5FeaturesKHR {
- maintenance5 :: Bool
- data PhysicalDeviceMaintenance5PropertiesKHR = PhysicalDeviceMaintenance5PropertiesKHR {}
- data RenderingAreaInfoKHR = RenderingAreaInfoKHR {}
- data ImageSubresource2KHR = ImageSubresource2KHR {}
- data SubresourceLayout2KHR (es :: [Type]) = SubresourceLayout2KHR {
- next :: Chain es
- subresourceLayout :: SubresourceLayout
- data DeviceImageSubresourceInfoKHR = DeviceImageSubresourceInfoKHR {}
- type PipelineCreateFlags2KHR = PipelineCreateFlagBits2KHR
- newtype PipelineCreateFlagBits2KHR where
- PipelineCreateFlagBits2KHR Flags64
- pattern PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_LIBRARY_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR :: PipelineCreateFlagBits2KHR
- pattern PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR :: PipelineCreateFlagBits2KHR
- type KHR_MAINTENANCE_5_SPEC_VERSION = 1
- pattern KHR_MAINTENANCE_5_SPEC_VERSION :: forall a. Integral a => a
- type KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5"
- pattern KHR_MAINTENANCE_5_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- newtype BufferUsageFlagBits2KHR where
- BufferUsageFlagBits2KHR Flags64
- pattern BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT :: BufferUsageFlagBits2KHR
- pattern BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX :: BufferUsageFlagBits2KHR
- type BufferUsageFlags2KHR = BufferUsageFlagBits2KHR
Documentation
getRenderingAreaGranularityKHR Source #
:: forall io. MonadIO io | |
=> Device |
|
-> RenderingAreaInfoKHR |
|
-> io ("granularity" ::: Extent2D) |
vkGetRenderingAreaGranularityKHR - Returns the granularity for dynamic rendering optimal render area
Description
The conditions leading to an optimal renderArea
are:
- the
offset.x
member inrenderArea
is a multiple of thewidth
member of the returnedExtent2D
(the horizontal granularity). - the
offset.y
member inrenderArea
is a multiple of theheight
member of the returnedExtent2D
(the vertical granularity). - either the
extent.width
member inrenderArea
is a multiple of the horizontal granularity oroffset.x
+extent.width
is equal to thewidth
of theframebuffer
in theRenderPassBeginInfo
. - either the
extent.height
member inrenderArea
is a multiple of the vertical granularity oroffset.y
+extent.height
is equal to theheight
of theframebuffer
in theRenderPassBeginInfo
.
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pRenderingAreaInfo
must be a valid pointer to a validRenderingAreaInfoKHR
structure -
pGranularity
must be a valid pointer to aExtent2D
structure
See Also
cmdBindIndexBuffer2KHR Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> Buffer |
|
-> ("offset" ::: DeviceSize) |
|
-> DeviceSize |
|
-> IndexType |
|
-> io () |
vkCmdBindIndexBuffer2KHR - Bind an index buffer to a command buffer
Description
size
specifies the bound size of the index buffer starting from
offset
. If size
is WHOLE_SIZE
then the
bound size is from offset
to the end of the buffer
.
Valid Usage
- The sum of
offset
and the base address of the range ofDeviceMemory
object that is backingbuffer
, must be a multiple of the size of the type indicated byindexType
-
buffer
must have been created with theBUFFER_USAGE_INDEX_BUFFER_BIT
flag - If
buffer
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
indexType
must not beINDEX_TYPE_NONE_KHR
- If
indexType
isINDEX_TYPE_UINT8_EXT
, the indexTypeUint8 feature must be enabled - If
size
is notWHOLE_SIZE
,size
must be a multiple of the size of the type indicated byindexType
- If
size
is notWHOLE_SIZE
, the sum ofoffset
andsize
must be less than or equal to the size ofbuffer
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
buffer
must be a validBuffer
handle -
indexType
must be a validIndexType
value -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a video coding scope
- Both of
buffer
, andcommandBuffer
must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Video Coding Scope | Supported Queue Types | Command Type |
---|---|---|---|---|
Primary Secondary | Both | Outside | Graphics | State |
See Also
VK_KHR_maintenance5,
Buffer
, CommandBuffer
,
DeviceSize
,
IndexType
getImageSubresourceLayout2KHR Source #
:: forall a io. (Extendss SubresourceLayout2KHR a, PokeChain a, PeekChain a, MonadIO io) | |
=> Device |
|
-> Image |
|
-> ImageSubresource2KHR |
|
-> io (SubresourceLayout2KHR a) |
vkGetImageSubresourceLayout2KHR - Retrieve information about an image subresource
Description
getImageSubresourceLayout2KHR
behaves similarly to
getImageSubresourceLayout
, with the ability to
specify extended inputs via chained input structures, and to return
extended information via chained output structures.
It is legal to call getImageSubresourceLayout2KHR
with a image
created with tiling
equal to
IMAGE_TILING_OPTIMAL
, but the members
of SubresourceLayout2KHR
::subresourceLayout
will have undefined
values in this case.
Note
Structures chained from ImageSubresource2KHR
::pNext
will also be
updated when tiling
is equal to
IMAGE_TILING_OPTIMAL
.
Valid Usage
- The
mipLevel
member ofpSubresource
must be less than themipLevels
specified inImageCreateInfo
whenimage
was created - The
arrayLayer
member ofpSubresource
must be less than thearrayLayers
specified inImageCreateInfo
whenimage
was created - If
format
of theimage
is a color format,tiling
of theimage
isIMAGE_TILING_LINEAR
orIMAGE_TILING_OPTIMAL
, and does not have a multi-planar image format, theaspectMask
member ofpSubresource
must beIMAGE_ASPECT_COLOR_BIT
- If
format
of theimage
has a depth component, theaspectMask
member ofpSubresource
must containIMAGE_ASPECT_DEPTH_BIT
- If
format
of theimage
has a stencil component, theaspectMask
member ofpSubresource
must containIMAGE_ASPECT_STENCIL_BIT
- If
format
of theimage
does not contain a stencil or depth component, theaspectMask
member ofpSubresource
must not containIMAGE_ASPECT_DEPTH_BIT
orIMAGE_ASPECT_STENCIL_BIT
- If the
tiling
of theimage
isIMAGE_TILING_LINEAR
and has a multi-planar image format, then theaspectMask
member ofpSubresource
must be a single valid multi-planar aspect mask bit - If
image
was created with theEXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
external memory handle type, thenimage
must be bound to memory - If the
tiling
of theimage
isIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
, then theaspectMask
member ofpSubresource
must beVK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT
and the index i must be less than theDrmFormatModifierPropertiesEXT
::drmFormatModifierPlaneCount
associated with the image’sformat
andImageDrmFormatModifierPropertiesEXT
::drmFormatModifier
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
image
must be a validImage
handle -
pSubresource
must be a valid pointer to a validImageSubresource2KHR
structure -
pLayout
must be a valid pointer to aSubresourceLayout2KHR
structure -
image
must have been created, allocated, or retrieved fromdevice
See Also
VK_KHR_maintenance5,
Device
, Image
,
ImageSubresource2KHR
, SubresourceLayout2KHR
getDeviceImageSubresourceLayoutKHR Source #
:: forall a io. (Extendss SubresourceLayout2KHR a, PokeChain a, PeekChain a, MonadIO io) | |
=> Device |
|
-> DeviceImageSubresourceInfoKHR |
|
-> io (SubresourceLayout2KHR a) |
vkGetDeviceImageSubresourceLayoutKHR - Retrieve information about an image subresource without an image object
Description
getDeviceImageSubresourceLayoutKHR
behaves similarly to
getImageSubresourceLayout2KHR
, but uses a
ImageCreateInfo
structure to specify the image
rather than a Image
object.
Valid Usage (Implicit)
See Also
VK_KHR_maintenance5,
Device
, DeviceImageSubresourceInfoKHR
,
SubresourceLayout2KHR
data BufferUsageFlags2CreateInfoKHR Source #
VkBufferUsageFlags2CreateInfoKHR - Extended buffer usage flags
Description
If this structure is included in the pNext
chain of a buffer creation
structure, usage
is used instead of the corresponding usage
value
passed in that creation structure, allowing additional usage flags to be
specified. If this structure is included in the pNext
chain of a
buffer query structure, the usage flags of the buffer are returned in
usage
of this structure, and the usage flags representable in usage
of the buffer query structure are also returned in that field.
Valid Usage (Implicit)
See Also
BufferUsageFlags2CreateInfoKHR | |
|
Instances
data PipelineCreateFlags2CreateInfoKHR Source #
VkPipelineCreateFlags2CreateInfoKHR - Extended pipeline create flags
Description
If this structure is included in the pNext
chain of a pipeline
creation structure, flags
is used instead of the corresponding flags
value passed in that creation structure, allowing additional creation
flags to be specified.
Valid Usage (Implicit)
See Also
PipelineCreateFlags2CreateInfoKHR | |
|
Instances
data PhysicalDeviceMaintenance5FeaturesKHR Source #
VkPhysicalDeviceMaintenance5FeaturesKHR - Structure describing whether the implementation supports maintenance5 functionality
Members
This structure describes the following feature:
Description
If the PhysicalDeviceMaintenance5FeaturesKHR
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. PhysicalDeviceMaintenance5FeaturesKHR
can also be used in
the pNext
chain of DeviceCreateInfo
to
selectively enable these features.
Valid Usage (Implicit)
See Also
PhysicalDeviceMaintenance5FeaturesKHR | |
|
Instances
data PhysicalDeviceMaintenance5PropertiesKHR Source #
VkPhysicalDeviceMaintenance5PropertiesKHR - Structure describing various implementation-defined properties introduced with VK_KHR_maintenance5
Description
If the PhysicalDeviceMaintenance5PropertiesKHR
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
PhysicalDeviceMaintenance5PropertiesKHR | |
|
Instances
data RenderingAreaInfoKHR Source #
VkRenderingAreaInfoKHR - Structure describing rendering area granularity query info
Valid Usage (Implicit)
See Also
VK_KHR_maintenance5,
Format
,
StructureType
,
getRenderingAreaGranularityKHR
RenderingAreaInfoKHR | |
|
Instances
Show RenderingAreaInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance5 showsPrec :: Int -> RenderingAreaInfoKHR -> ShowS # show :: RenderingAreaInfoKHR -> String # showList :: [RenderingAreaInfoKHR] -> ShowS # | |
FromCStruct RenderingAreaInfoKHR Source # | |
ToCStruct RenderingAreaInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance5 withCStruct :: RenderingAreaInfoKHR -> (Ptr RenderingAreaInfoKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr RenderingAreaInfoKHR -> RenderingAreaInfoKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr RenderingAreaInfoKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr RenderingAreaInfoKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero RenderingAreaInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance5 |
data ImageSubresource2KHR Source #
VkImageSubresource2KHR - Structure specifying an image subresource
Valid Usage (Implicit)
See Also
VK_EXT_host_image_copy,
VK_EXT_image_compression_control,
VK_KHR_maintenance5,
DeviceImageSubresourceInfoKHR
,
ImageSubresource
,
StructureType
,
getImageSubresourceLayout2EXT
,
getImageSubresourceLayout2KHR
ImageSubresource2KHR | |
|
Instances
data SubresourceLayout2KHR (es :: [Type]) Source #
VkSubresourceLayout2KHR - Structure specifying subresource layout
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofImageCompressionPropertiesEXT
orSubresourceHostMemcpySizeEXT
- The
sType
value of each struct in thepNext
chain must be unique
See Also
VK_EXT_host_image_copy,
VK_EXT_image_compression_control,
VK_KHR_maintenance5,
StructureType
,
SubresourceLayout
,
getDeviceImageSubresourceLayoutKHR
,
getImageSubresourceLayout2EXT
,
getImageSubresourceLayout2KHR
SubresourceLayout2KHR | |
|
Instances
data DeviceImageSubresourceInfoKHR Source #
VkDeviceImageSubresourceInfoKHR - Image creation information for querying subresource layout
Valid Usage
- The
mipLevel
member ofpSubresource
must be less than themipLevels
specified inImageCreateInfo
whenimage
was created - The
arrayLayer
member ofpSubresource
must be less than thearrayLayers
specified inImageCreateInfo
whenimage
was created - If
format
of theimage
is a color format,tiling
of theimage
isIMAGE_TILING_LINEAR
orIMAGE_TILING_OPTIMAL
, and does not have a multi-planar image format, theaspectMask
member ofpSubresource
must beIMAGE_ASPECT_COLOR_BIT
- If
format
of theimage
has a depth component, theaspectMask
member ofpSubresource
must containIMAGE_ASPECT_DEPTH_BIT
- If
format
of theimage
has a stencil component, theaspectMask
member ofpSubresource
must containIMAGE_ASPECT_STENCIL_BIT
- If
format
of theimage
does not contain a stencil or depth component, theaspectMask
member ofpSubresource
must not containIMAGE_ASPECT_DEPTH_BIT
orIMAGE_ASPECT_STENCIL_BIT
- If the
tiling
of theimage
isIMAGE_TILING_LINEAR
and has a multi-planar image format, then theaspectMask
member ofpSubresource
must be a single valid multi-planar aspect mask bit - If
image
was created with theEXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
external memory handle type, thenimage
must be bound to memory - If the
tiling
of theimage
isIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
, then theaspectMask
member ofpSubresource
must beVK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT
and the index i must be less than theDrmFormatModifierPropertiesEXT
::drmFormatModifierPlaneCount
associated with the image’sformat
andImageDrmFormatModifierPropertiesEXT
::drmFormatModifier
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR
-
pNext
must beNULL
-
pCreateInfo
must be a valid pointer to a validImageCreateInfo
structure -
pSubresource
must be a valid pointer to a validImageSubresource2KHR
structure
See Also
VK_KHR_maintenance5,
ImageCreateInfo
, ImageSubresource2KHR
,
StructureType
,
getDeviceImageSubresourceLayoutKHR
DeviceImageSubresourceInfoKHR | |
|
Instances
newtype PipelineCreateFlagBits2KHR Source #
VkPipelineCreateFlagBits2KHR - Bitmask controlling how a pipeline is created
Description
PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR
specifies that the created pipeline will not be optimized. Using this flag may reduce the time taken to create the pipeline.
PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR
specifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent pipeline creation call.PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR
specifies that the pipeline to be created will be a child of a previously created parent pipeline.PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
specifies that any shader input variables decorated asViewIndex
will be assigned values as if they were decorated asDeviceIndex
.PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR
specifies that a compute pipeline can be used withcmdDispatchBase
with a non-zero base workgroup.PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV
specifies that a pipeline is created with all shaders in the deferred state. Before using the pipeline the application must callcompileDeferredNV
exactly once on each shader in the pipeline before using the pipeline.PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR
specifies that the shader compiler should capture statistics for the pipeline executables produced by the compile process which can later be retrieved by callinggetPipelineExecutableStatisticsKHR
. Enabling this flag must not affect the final compiled pipeline but may disable pipeline caching or otherwise affect pipeline creation time.PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
specifies that the shader compiler should capture the internal representations of pipeline executables produced by the compile process which can later be retrieved by callinggetPipelineExecutableInternalRepresentationsKHR
. Enabling this flag must not affect the final compiled pipeline but may disable pipeline caching or otherwise affect pipeline creation time. When capturing IR from pipelines created with pipeline libraries, there is no guarantee that IR from libraries can be retrieved from the linked pipeline. Applications should retrieve IR from each library, and any linked pipelines, separately.PIPELINE_CREATE_2_LIBRARY_BIT_KHR
specifies that the pipeline cannot be used directly, and instead defines a pipeline library that can be combined with other pipelines using thePipelineLibraryCreateInfoKHR
structure. This is available in ray tracing and graphics pipelines.PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
specifies that an any-hit shader will always be present when an any-hit shader would be executed. A NULL any-hit shader is an any-hit shader which is effectivelySHADER_UNUSED_KHR
, such as from a shader group consisting entirely of zeros.PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
specifies that a closest hit shader will always be present when a closest hit shader would be executed. A NULL closest hit shader is a closest hit shader which is effectivelySHADER_UNUSED_KHR
, such as from a shader group consisting entirely of zeros.PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
specifies that a miss shader will always be present when a miss shader would be executed. A NULL miss shader is a miss shader which is effectivelySHADER_UNUSED_KHR
, such as from a shader group consisting entirely of zeros.PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
specifies that an intersection shader will always be present when an intersection shader would be executed. A NULL intersection shader is an intersection shader which is effectivelySHADER_UNUSED_KHR
, such as from a shader group consisting entirely of zeros.PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
specifies that triangle primitives will be skipped during traversal usingOpTraceRayKHR
.PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR
specifies that AABB primitives will be skipped during traversal usingOpTraceRayKHR
.PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
specifies that the shader group handles can be saved and reused on a subsequent run (e.g. for trace capture and replay).PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV
specifies that the pipeline can be used in combination with https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands.PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR
specifies that pipeline creation will fail if a compile is required for creation of a validPipeline
object;PIPELINE_COMPILE_REQUIRED
will be returned by pipeline creation, and thePipeline
will be set toNULL_HANDLE
.- When creating multiple pipelines,
PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR
specifies that control will be returned to the application if any individual pipeline returns a result which is notSUCCESS
rather than continuing to create additional pipelines. PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV
specifies that the pipeline is allowed to useOpTraceRayMotionNV
.PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
specifies that the pipeline will be used with a fragment shading rate attachment.PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
specifies that the pipeline will be used with a fragment density map attachment.PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT
specifies that pipeline libraries being linked into this library should have link time optimizations applied. If this bit is omitted, implementations should instead perform linking as rapidly as possible.PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
specifies that pipeline libraries should retain any information necessary to later perform an optimal link withPIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT
.PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT
specifies that a pipeline will be used with descriptor buffers, rather than descriptor sets.PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
specifies that the pipeline may be used with an attachment feedback loop including color attachments.PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
specifies that the pipeline may be used with an attachment feedback loop including depth-stencil attachments.PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
specifies that the pipeline can be used with acceleration structures which reference an opacity micromap array.PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
specifies that the pipeline can be used with aceleration structures which reference a displacement micromap array.PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT
specifies that the pipeline must not be bound to a protected command buffer.PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT
specifies that the pipeline must not be bound to an unprotected command buffer.
It is valid to set both PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR
and PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR
. This allows a pipeline to be
both a parent and possibly a child in a pipeline hierarchy. See
Pipeline Derivatives
for more information.
When an implementation is looking up a pipeline in a
pipeline cache,
if that pipeline is being created using linked libraries,
implementations should always return an equivalent pipeline created
with PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT
if available,
whether or not that bit was specified.
Note
Using PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT
(or not) when
linking pipeline libraries is intended as a performance tradeoff between
host and device. If the bit is omitted, linking should be faster and
produce a pipeline more rapidly, but performance of the pipeline on the
target device may be reduced. If the bit is included, linking may be
slower but should produce a pipeline with device performance comparable
to a monolithically created pipeline. Using both options can allow
latency-sensitive applications to generate a suboptimal but usable
pipeline quickly, and then perform an optimal link in the background,
substituting the result for the suboptimally linked pipeline as soon as
it is available.
See Also
Instances
type KHR_MAINTENANCE_5_SPEC_VERSION = 1 Source #
pattern KHR_MAINTENANCE_5_SPEC_VERSION :: forall a. Integral a => a Source #
type KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5" Source #
pattern KHR_MAINTENANCE_5_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
newtype BufferUsageFlagBits2KHR Source #
VkBufferUsageFlagBits2KHR - Bitmask controlling how a pipeline is created