{-# language CPP #-}
-- | = 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__]
--         
--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
--          and
--         
--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
--     or
--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
--
-- [__API Interactions__]
--
--     -   Interacts with VK_VERSION_1_2
--
--     -   Interacts with VK_VERSION_1_3
--
--     -   Interacts with VK_VERSION_1_4
--
--     -   Interacts with VK_ARM_pipeline_opacity_micromap
--
--     -   Interacts with VK_EXT_attachment_feedback_loop_layout
--
--     -   Interacts with VK_EXT_buffer_device_address
--
--     -   Interacts with VK_EXT_conditional_rendering
--
--     -   Interacts with VK_EXT_descriptor_buffer
--
--     -   Interacts with VK_EXT_fragment_density_map
--
--     -   Interacts with VK_EXT_graphics_pipeline_library
--
--     -   Interacts with VK_EXT_opacity_micromap
--
--     -   Interacts with VK_EXT_pipeline_creation_cache_control
--
--     -   Interacts with VK_EXT_pipeline_protected_access
--
--     -   Interacts with VK_EXT_transform_feedback
--
--     -   Interacts with VK_KHR_acceleration_structure
--
--     -   Interacts with VK_KHR_buffer_device_address
--
--     -   Interacts with VK_KHR_dynamic_rendering
--
--     -   Interacts with VK_KHR_fragment_shading_rate
--
--     -   Interacts with VK_KHR_pipeline_executable_properties
--
--     -   Interacts with VK_KHR_pipeline_library
--
--     -   Interacts with VK_KHR_ray_tracing_pipeline
--
--     -   Interacts with VK_KHR_video_decode_queue
--
--     -   Interacts with VK_KHR_video_encode_queue
--
--     -   Interacts with VK_NV_device_generated_commands
--
--     -   Interacts with VK_NV_displacement_micromap
--
--     -   Interacts with VK_NV_ray_tracing
--
--     -   Interacts with VK_NV_ray_tracing_motion_blur
--
-- [__Deprecation State__]
--
--     -   /Promoted/ to
--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.4-promotions Vulkan 1.4>
--
-- [__Contact__]
--
--     -   Stu Smith
--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_maintenance5] @stu-s%0A*Here describe the issue or question you have about the VK_KHR_maintenance5 extension* >
--
-- [__Extension Proposal__]
--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_maintenance5.adoc 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 command 'cmdBindIndexBuffer2KHR', allowing a range of memory
--     to be bound as an index buffer
--
-- -   'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr' must return
--     @NULL@ 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
--
-- -   'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
--     now supports using 'Vulkan.Core10.APIConstants.WHOLE_SIZE' in the
--     @pSizes@ parameter.
--
-- -   A default size of 1.0 is used if @PointSize@ is not written
--
-- -   Shader modules are deprecated - applications can now pass
--     'Vulkan.Core10.Shader.ShaderModuleCreateInfo' as a chained structure
--     to pipeline creation via
--     'Vulkan.Core10.ComputePipeline.PipelineShaderStageCreateInfo'
--
-- -   A function 'getRenderingAreaGranularityKHR' to query the optimal
--     render area for a dynamic rendering instance.
--
-- -   A property to indicate that depth\/stencil texturing operations with
--     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have
--     defined behavior
--
-- -   Add 'getImageSubresourceLayout2KHR' and a new function
--     'getDeviceImageSubresourceLayoutKHR' to allow the application to
--     query the image memory layout without having to create an image
--     object and query it.
--
-- -   Allow 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' as the
--     @layerCount@ member of
--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'
--
-- -   Adds stronger guarantees for propagation of
--     'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' return values
--
-- -   A property to indicate whether @PointSize@ controls the final
--     rasterization of polygons if
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#primsrast-polygonmode polygon mode>
--     is 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'
--
-- -   Two properties to indicate the non-strict line rasterization
--     algorithm used
--
-- -   Two new flags words 'PipelineCreateFlagBits2KHR' and
--     'BufferUsageFlagBits2KHR'
--
-- -   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
--
-- -   'cmdBindIndexBuffer2KHR'
--
-- -   'getDeviceImageSubresourceLayoutKHR'
--
-- -   'getImageSubresourceLayout2KHR'
--
-- -   'getRenderingAreaGranularityKHR'
--
-- == New Structures
--
-- -   'DeviceImageSubresourceInfoKHR'
--
-- -   'ImageSubresource2KHR'
--
-- -   'RenderingAreaInfoKHR'
--
-- -   'SubresourceLayout2KHR'
--
-- -   Extending 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
--     'Vulkan.Core10.Buffer.BufferCreateInfo',
--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo',
--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT':
--
--     -   'BufferUsageFlags2CreateInfoKHR'
--
-- -   Extending 'Vulkan.Core10.ComputePipeline.ComputePipelineCreateInfo',
--     'Vulkan.Core10.GraphicsPipeline.GraphicsPipelineCreateInfo',
--     'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':
--
--     -   'PipelineCreateFlags2CreateInfoKHR'
--
-- -   Extending
--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
--     'Vulkan.Core10.Device.DeviceCreateInfo':
--
--     -   'PhysicalDeviceMaintenance5FeaturesKHR'
--
-- -   Extending
--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
--
--     -   'PhysicalDeviceMaintenance5PropertiesKHR'
--
-- == New Enums
--
-- -   'BufferUsageFlagBits2KHR'
--
-- -   'PipelineCreateFlagBits2KHR'
--
-- == New Bitmasks
--
-- -   'BufferUsageFlags2KHR'
--
-- -   'PipelineCreateFlags2KHR'
--
-- == New Enum Constants
--
-- -   'KHR_MAINTENANCE_5_EXTENSION_NAME'
--
-- -   'KHR_MAINTENANCE_5_SPEC_VERSION'
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR'
--
--     -   'BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR'
--
--     -   'BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR'
--
--     -   'BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR'
--
--     -   'BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR'
--
--     -   'BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR'
--
--     -   'BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR'
--
--     -   'BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR'
--
--     -   'BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR'
--
-- -   Extending 'Vulkan.Core10.Enums.Format.Format':
--
--     -   'FORMAT_A1B5G5R5_UNORM_PACK16_KHR'
--
--     -   'FORMAT_A8_UNORM_KHR'
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR'
--
--     -   'PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR'
--
--     -   'PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR'
--
--     -   'PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR'
--
--     -   'PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR'
--
-- -   Extending 'Vulkan.Core10.Enums.StructureType.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
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
-- and
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
-- and
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_pipeline_opacity_micromap VK_ARM_pipeline_opacity_micromap>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_layout VK_EXT_attachment_feedback_loop_layout>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering VK_EXT_conditional_rendering>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library VK_EXT_graphics_pipeline_library>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT'
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT'
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties VK_KHR_pipeline_executable_properties>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_LIBRARY_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR'
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_video_decode_queue VK_KHR_video_decode_queue>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_video_encode_queue VK_KHR_video_encode_queue>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR'
--
--     -   'Vulkan.Core14.Enums.BufferUsageFlags2.BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_displacement_micromap VK_NV_displacement_micromap>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'BUFFER_USAGE_2_RAY_TRACING_BIT_NV'
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur VK_NV_ray_tracing_motion_blur>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'Vulkan.Core14.Enums.PipelineCreateFlags2.PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_address VK_KHR_buffer_device_address>
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_buffer_device_address VK_EXT_buffer_device_address>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.BufferUsageFlags2.BufferUsageFlagBits2':
--
--     -   'BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control VK_EXT_pipeline_creation_cache_control>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR'
--
--     -   'PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.4 Vulkan Version 1.4>
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_protected_access VK_EXT_pipeline_protected_access>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core14.Enums.PipelineCreateFlags2.PipelineCreateFlagBits2':
--
--     -   'PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT'
--
--     -   'PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT'
--
-- == Promotion to Vulkan 1.4
--
-- Functionality in this extension is included in core Vulkan 1.4 with the
-- KHR suffix omitted. The original type, enum, and command names are still
-- available as aliases of the core functionality.
--
-- == Version History
--
-- -   Revision 1, 2022-12-12 (Stu Smith)
--
--     -   Initial revision
--
-- == See Also
--
-- No cross-references are available
--
-- == Document Notes
--
-- For more information, see the
-- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VK_KHR_maintenance5 Vulkan Specification>.
--
-- This page is a generated document. Fixes and changes should be made to
-- the generator scripts, not directly.
module Vulkan.Extensions.VK_KHR_maintenance5  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
                                              , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
                                              , pattern STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR
                                              , pattern STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR
                                              , pattern FORMAT_A1B5G5R5_UNORM_PACK16_KHR
                                              , pattern FORMAT_A8_UNORM_KHR
                                              , pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
                                              , pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR
                                              , pattern PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR
                                              , pattern PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR
                                              , pattern PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR
                                              , pattern PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
                                              , pattern PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR
                                              , pattern BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR
                                              , pattern BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR
                                              , pattern BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR
                                              , pattern BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR
                                              , pattern BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR
                                              , pattern BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR
                                              , pattern BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR
                                              , pattern BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR
                                              , pattern BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR
                                              , pattern STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR
                                              , pattern STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR
                                              , pattern PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR
                                              , pattern PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR
                                              , pattern PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT
                                              , pattern PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT
                                              , pattern BUFFER_USAGE_2_RAY_TRACING_BIT_NV
                                              , pattern BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR
                                              , getRenderingAreaGranularityKHR
                                              , cmdBindIndexBuffer2KHR
                                              , getImageSubresourceLayout2KHR
                                              , getDeviceImageSubresourceLayoutKHR
                                              , PipelineCreateFlags2KHR
                                              , BufferUsageFlags2KHR
                                              , PipelineCreateFlagBits2KHR
                                              , BufferUsageFlagBits2KHR
                                              , BufferUsageFlags2CreateInfoKHR
                                              , PipelineCreateFlags2CreateInfoKHR
                                              , PhysicalDeviceMaintenance5FeaturesKHR
                                              , PhysicalDeviceMaintenance5PropertiesKHR
                                              , RenderingAreaInfoKHR
                                              , ImageSubresource2KHR
                                              , SubresourceLayout2KHR
                                              , DeviceImageSubresourceInfoKHR
                                              , KHR_MAINTENANCE_5_SPEC_VERSION
                                              , pattern KHR_MAINTENANCE_5_SPEC_VERSION
                                              , KHR_MAINTENANCE_5_EXTENSION_NAME
                                              , pattern KHR_MAINTENANCE_5_EXTENSION_NAME
                                              ) where

import Data.String (IsString)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (cmdBindIndexBuffer2)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (getDeviceImageSubresourceLayout)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (getImageSubresourceLayout2)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (getRenderingAreaGranularity)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (BufferUsageFlags2CreateInfo)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (DeviceImageSubresourceInfo)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (ImageSubresource2)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (PhysicalDeviceMaintenance5Features)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (PhysicalDeviceMaintenance5Properties)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (PipelineCreateFlags2CreateInfo)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (RenderingAreaInfo)
import Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (SubresourceLayout2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_INDEX_BUFFER_BIT))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_INDIRECT_BUFFER_BIT))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_STORAGE_BUFFER_BIT))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_TRANSFER_DST_BIT))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_TRANSFER_SRC_BIT))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_UNIFORM_BUFFER_BIT))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT))
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlags2)
import Vulkan.Core14.Enums.BufferUsageFlags2 (BufferUsageFlagBits2(BUFFER_USAGE_2_VERTEX_BUFFER_BIT))
import Vulkan.Core10.Enums.Format (Format(FORMAT_A1B5G5R5_UNORM_PACK16))
import Vulkan.Core10.Enums.Format (Format(FORMAT_A8_UNORM))
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2(PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT))
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2(PIPELINE_CREATE_2_DERIVATIVE_BIT))
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2(PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT))
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2(PIPELINE_CREATE_2_DISPATCH_BASE_BIT))
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2(PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT))
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2(PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT))
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2(PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT))
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2(PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT))
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlags2)
import Vulkan.Core14.Enums.PipelineCreateFlags2 (PipelineCreateFlagBits2(PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_AREA_INFO))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2))
-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR"
pattern $mSTRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR :: StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR"
pattern $mSTRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR :: StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR"
pattern $mSTRUCTURE_TYPE_RENDERING_AREA_INFO_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_RENDERING_AREA_INFO_KHR :: StructureType
STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = STRUCTURE_TYPE_RENDERING_AREA_INFO


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR"
pattern $mSTRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR :: StructureType
STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO


-- No documentation found for TopLevel "VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR"
pattern $mFORMAT_A1B5G5R5_UNORM_PACK16_KHR :: forall {r}. Format -> ((# #) -> r) -> ((# #) -> r) -> r
$bFORMAT_A1B5G5R5_UNORM_PACK16_KHR :: Format
FORMAT_A1B5G5R5_UNORM_PACK16_KHR = FORMAT_A1B5G5R5_UNORM_PACK16


-- No documentation found for TopLevel "VK_FORMAT_A8_UNORM_KHR"
pattern $mFORMAT_A8_UNORM_KHR :: forall {r}. Format -> ((# #) -> r) -> ((# #) -> r) -> r
$bFORMAT_A8_UNORM_KHR :: Format
FORMAT_A8_UNORM_KHR = FORMAT_A8_UNORM


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR"
pattern $mSTRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR :: StructureType
STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR"
pattern $mSTRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR :: StructureType
STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2


-- No documentation found for TopLevel "VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR"
pattern $mPIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR :: forall {r}.
PipelineCreateFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR :: PipelineCreateFlagBits2
PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT


-- No documentation found for TopLevel "VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR"
pattern $mPIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR :: forall {r}.
PipelineCreateFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR :: PipelineCreateFlagBits2
PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT


-- No documentation found for TopLevel "VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR"
pattern $mPIPELINE_CREATE_2_DERIVATIVE_BIT_KHR :: forall {r}.
PipelineCreateFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_CREATE_2_DERIVATIVE_BIT_KHR :: PipelineCreateFlagBits2
PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = PIPELINE_CREATE_2_DERIVATIVE_BIT


-- No documentation found for TopLevel "VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"
pattern $mPIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR :: forall {r}.
PipelineCreateFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR :: PipelineCreateFlagBits2
PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT


-- No documentation found for TopLevel "VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR"
pattern $mPIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR :: forall {r}.
PipelineCreateFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR :: PipelineCreateFlagBits2
PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = PIPELINE_CREATE_2_DISPATCH_BASE_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR"
pattern $mBUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = BUFFER_USAGE_2_TRANSFER_SRC_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR"
pattern $mBUFFER_USAGE_2_TRANSFER_DST_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_TRANSFER_DST_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = BUFFER_USAGE_2_TRANSFER_DST_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR"
pattern $mBUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR"
pattern $mBUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR"
pattern $mBUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = BUFFER_USAGE_2_UNIFORM_BUFFER_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR"
pattern $mBUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = BUFFER_USAGE_2_STORAGE_BUFFER_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR"
pattern $mBUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = BUFFER_USAGE_2_INDEX_BUFFER_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR"
pattern $mBUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = BUFFER_USAGE_2_VERTEX_BUFFER_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR"
pattern $mBUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = BUFFER_USAGE_2_INDIRECT_BUFFER_BIT


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR"
pattern $mSTRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR :: StructureType
STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR"
pattern $mSTRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR :: StructureType
STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO


-- No documentation found for TopLevel "VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR"
pattern $mPIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR :: forall {r}.
PipelineCreateFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR :: PipelineCreateFlagBits2
PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT


-- No documentation found for TopLevel "VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR"
pattern $mPIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR :: forall {r}.
PipelineCreateFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR :: PipelineCreateFlagBits2
PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT


-- No documentation found for TopLevel "VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT"
pattern $mPIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT :: forall {r}.
PipelineCreateFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT :: PipelineCreateFlagBits2
PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT


-- No documentation found for TopLevel "VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT"
pattern $mPIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT :: forall {r}.
PipelineCreateFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT :: PipelineCreateFlagBits2
PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV"
pattern $mBUFFER_USAGE_2_RAY_TRACING_BIT_NV :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_RAY_TRACING_BIT_NV :: BufferUsageFlagBits2
BUFFER_USAGE_2_RAY_TRACING_BIT_NV = BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR


-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR"
pattern $mBUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT


-- No documentation found for TopLevel "vkGetRenderingAreaGranularityKHR"
getRenderingAreaGranularityKHR :: Device -> RenderingAreaInfo -> io ("granularity" ::: Extent2D)
getRenderingAreaGranularityKHR = Device -> RenderingAreaInfo -> io ("granularity" ::: Extent2D)
forall (io :: * -> *).
MonadIO io =>
Device -> RenderingAreaInfo -> io ("granularity" ::: Extent2D)
getRenderingAreaGranularity


-- No documentation found for TopLevel "vkCmdBindIndexBuffer2KHR"
cmdBindIndexBuffer2KHR :: CommandBuffer
-> Buffer
-> ("offset" ::: DeviceSize)
-> ("offset" ::: DeviceSize)
-> IndexType
-> io ()
cmdBindIndexBuffer2KHR = CommandBuffer
-> Buffer
-> ("offset" ::: DeviceSize)
-> ("offset" ::: DeviceSize)
-> IndexType
-> io ()
forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> Buffer
-> ("offset" ::: DeviceSize)
-> ("offset" ::: DeviceSize)
-> IndexType
-> io ()
cmdBindIndexBuffer2


-- No documentation found for TopLevel "vkGetImageSubresourceLayout2KHR"
getImageSubresourceLayout2KHR :: Device -> Image -> ImageSubresource2 -> io (SubresourceLayout2 a)
getImageSubresourceLayout2KHR = Device -> Image -> ImageSubresource2 -> io (SubresourceLayout2 a)
forall (a :: [*]) (io :: * -> *).
(Extendss SubresourceLayout2 a, PokeChain a, PeekChain a,
 MonadIO io) =>
Device -> Image -> ImageSubresource2 -> io (SubresourceLayout2 a)
getImageSubresourceLayout2


-- No documentation found for TopLevel "vkGetDeviceImageSubresourceLayoutKHR"
getDeviceImageSubresourceLayoutKHR :: Device -> DeviceImageSubresourceInfo -> io (SubresourceLayout2 a)
getDeviceImageSubresourceLayoutKHR = Device -> DeviceImageSubresourceInfo -> io (SubresourceLayout2 a)
forall (a :: [*]) (io :: * -> *).
(Extendss SubresourceLayout2 a, PokeChain a, PeekChain a,
 MonadIO io) =>
Device -> DeviceImageSubresourceInfo -> io (SubresourceLayout2 a)
getDeviceImageSubresourceLayout


-- No documentation found for TopLevel "VkPipelineCreateFlags2KHR"
type PipelineCreateFlags2KHR = PipelineCreateFlags2


-- No documentation found for TopLevel "VkBufferUsageFlags2KHR"
type BufferUsageFlags2KHR = BufferUsageFlags2


-- No documentation found for TopLevel "VkPipelineCreateFlagBits2KHR"
type PipelineCreateFlagBits2KHR = PipelineCreateFlagBits2


-- No documentation found for TopLevel "VkBufferUsageFlagBits2KHR"
type BufferUsageFlagBits2KHR = BufferUsageFlagBits2


-- No documentation found for TopLevel "VkBufferUsageFlags2CreateInfoKHR"
type BufferUsageFlags2CreateInfoKHR = BufferUsageFlags2CreateInfo


-- No documentation found for TopLevel "VkPipelineCreateFlags2CreateInfoKHR"
type PipelineCreateFlags2CreateInfoKHR = PipelineCreateFlags2CreateInfo


-- No documentation found for TopLevel "VkPhysicalDeviceMaintenance5FeaturesKHR"
type PhysicalDeviceMaintenance5FeaturesKHR = PhysicalDeviceMaintenance5Features


-- No documentation found for TopLevel "VkPhysicalDeviceMaintenance5PropertiesKHR"
type PhysicalDeviceMaintenance5PropertiesKHR = PhysicalDeviceMaintenance5Properties


-- No documentation found for TopLevel "VkRenderingAreaInfoKHR"
type RenderingAreaInfoKHR = RenderingAreaInfo


-- No documentation found for TopLevel "VkImageSubresource2KHR"
type ImageSubresource2KHR = ImageSubresource2


-- No documentation found for TopLevel "VkSubresourceLayout2KHR"
type SubresourceLayout2KHR = SubresourceLayout2


-- No documentation found for TopLevel "VkDeviceImageSubresourceInfoKHR"
type DeviceImageSubresourceInfoKHR = DeviceImageSubresourceInfo


type KHR_MAINTENANCE_5_SPEC_VERSION = 1

-- No documentation found for TopLevel "VK_KHR_MAINTENANCE_5_SPEC_VERSION"
pattern KHR_MAINTENANCE_5_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_MAINTENANCE_5_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_MAINTENANCE_5_SPEC_VERSION :: forall a. Integral a => a
KHR_MAINTENANCE_5_SPEC_VERSION = 1


type KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5"

-- No documentation found for TopLevel "VK_KHR_MAINTENANCE_5_EXTENSION_NAME"
pattern KHR_MAINTENANCE_5_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_MAINTENANCE_5_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_MAINTENANCE_5_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5"