{-# language CPP #-}
-- | = Name
--
-- VK_KHR_synchronization2 - device extension
--
-- = VK_KHR_synchronization2
--
-- [__Name String__]
--     @VK_KHR_synchronization2@
--
-- [__Extension Type__]
--     Device extension
--
-- [__Registered Extension Number__]
--     315
--
-- [__Revision__]
--     1
--
-- [__Ratification Status__]
--     Ratified
--
-- [__Extension and Version Dependencies__]
--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
--     or
--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
--
-- [__API Interactions__]
--
--     -   Interacts with VK_EXT_blend_operation_advanced
--
--     -   Interacts with VK_EXT_conditional_rendering
--
--     -   Interacts with VK_EXT_device_generated_commands
--
--     -   Interacts with VK_EXT_fragment_density_map
--
--     -   Interacts with VK_EXT_mesh_shader
--
--     -   Interacts with VK_EXT_transform_feedback
--
--     -   Interacts with VK_KHR_acceleration_structure
--
--     -   Interacts with VK_KHR_fragment_shading_rate
--
--     -   Interacts with VK_KHR_ray_tracing_pipeline
--
--     -   Interacts with VK_NV_device_generated_commands
--
--     -   Interacts with VK_NV_mesh_shader
--
--     -   Interacts with VK_NV_ray_tracing
--
--     -   Interacts with VK_NV_shading_rate_image
--
-- [__Deprecation State__]
--
--     -   /Promoted/ to
--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
--
-- [__Contact__]
--
--     -   Tobias Hector
--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_synchronization2] @tobski%0A*Here describe the issue or question you have about the VK_KHR_synchronization2 extension* >
--
-- == Other Extension Metadata
--
-- [__Last Modified Date__]
--     2020-12-03
--
-- [__Interactions and External Dependencies__]
--
--     -   Interacts with @VK_KHR_create_renderpass2@
--
-- [__Contributors__]
--
--     -   Tobias Hector
--
-- == Description
--
-- This extension modifies the original core synchronization APIs to
-- simplify the interface and improve usability of these APIs. It also adds
-- new pipeline stage and access flag types that extend into the 64-bit
-- range, as we have run out within the 32-bit range. The new flags are
-- identical to the old values within the 32-bit range, with new stages and
-- bits beyond that.
--
-- Pipeline stages and access flags are now specified together in memory
-- barrier structures, making the connection between the two more obvious.
-- Additionally, scoping the pipeline stages into the barrier structs
-- allows the use of the @MEMORY_READ@ and @MEMORY_WRITE@ flags without
-- sacrificing precision. The per-stage access flags should be used to
-- disambiguate specific accesses in a given stage or set of stages - for
-- instance, between uniform reads and sampling operations.
--
-- Layout transitions have been simplified as well; rather than requiring a
-- different set of layouts for depth\/stencil\/color attachments, there
-- are generic 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' and
-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' layouts which are contextually
-- applied based on the image format. For example, for a depth format
-- image, 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is equivalent to
-- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'.
-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' also functionally replaces
-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'.
--
-- Events are now more efficient, because they include memory dependency
-- information when you set them on the device. Previously, this
-- information was only known when waiting on an event, so the dependencies
-- could not be satisfied until the wait occurred. That sometimes meant
-- stalling the pipeline when the wait occurred. The new API provides
-- enough information for implementations to satisfy these dependencies in
-- parallel with other tasks.
--
-- Queue submission has been changed to wrap command buffers and semaphores
-- in extensible structures, which incorporate changes from Vulkan 1.1,
-- @VK_KHR_device_group@, and @VK_KHR_timeline_semaphore@. This also adds a
-- pipeline stage to the semaphore signal operation, mirroring the existing
-- pipeline stage specification for wait operations.
--
-- Other miscellaneous changes include:
--
-- -   Events can now be specified as interacting only with the device,
--     allowing more efficient access to the underlying object.
--
-- -   Image memory barriers that do not perform an image layout transition
--     can be specified by setting @oldLayout@ equal to @newLayout@.
--
--     -   E.g. the old and new layout can both be set to
--         'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',
--         without discarding data in the image.
--
-- -   Queue family ownership transfer parameters are simplified in some
--     cases.
--
-- -   Extensions with commands or functions with a
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags' or
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
--     parameter have had those APIs replaced with equivalents using
--     'PipelineStageFlags2KHR'.
--
-- -   The new event and barrier interfaces are now more extensible for
--     future changes.
--
-- -   Relevant pipeline stage masks can now be specified as empty with the
--     new 'PIPELINE_STAGE_NONE_KHR' and 'PIPELINE_STAGE_2_NONE_KHR'
--     values.
--
-- -   'MemoryBarrier2KHR' can be chained to
--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',
--     overriding the original 32-bit stage and access masks.
--
-- == New Base Types
--
-- -   'Vulkan.Core10.FundamentalTypes.Flags64'
--
-- == New Commands
--
-- -   'cmdPipelineBarrier2KHR'
--
-- -   'cmdResetEvent2KHR'
--
-- -   'cmdSetEvent2KHR'
--
-- -   'cmdWaitEvents2KHR'
--
-- -   'cmdWriteTimestamp2KHR'
--
-- -   'queueSubmit2KHR'
--
-- == New Structures
--
-- -   'BufferMemoryBarrier2KHR'
--
-- -   'CommandBufferSubmitInfoKHR'
--
-- -   'DependencyInfoKHR'
--
-- -   'ImageMemoryBarrier2KHR'
--
-- -   'SemaphoreSubmitInfoKHR'
--
-- -   'SubmitInfo2KHR'
--
-- -   Extending
--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
--     'Vulkan.Core10.Device.DeviceCreateInfo':
--
--     -   'PhysicalDeviceSynchronization2FeaturesKHR'
--
-- -   Extending
--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2':
--
--     -   'MemoryBarrier2KHR'
--
-- == New Enums
--
-- -   'AccessFlagBits2KHR'
--
-- -   'PipelineStageFlagBits2KHR'
--
-- -   'SubmitFlagBitsKHR'
--
-- == New Bitmasks
--
-- -   'AccessFlags2KHR'
--
-- -   'PipelineStageFlags2KHR'
--
-- -   'SubmitFlagsKHR'
--
-- == New Enum Constants
--
-- -   'KHR_SYNCHRONIZATION_2_EXTENSION_NAME'
--
-- -   'KHR_SYNCHRONIZATION_2_SPEC_VERSION'
--
-- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':
--
--     -   'ACCESS_NONE_KHR'
--
-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR'
--
--     -   'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR'
--
--     -   'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR'
--
--     -   'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR'
--
--     -   'ACCESS_2_HOST_READ_BIT_KHR'
--
--     -   'ACCESS_2_HOST_WRITE_BIT_KHR'
--
--     -   'ACCESS_2_INDEX_READ_BIT_KHR'
--
--     -   'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR'
--
--     -   'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR'
--
--     -   'ACCESS_2_MEMORY_READ_BIT_KHR'
--
--     -   'ACCESS_2_MEMORY_WRITE_BIT_KHR'
--
--     -   'ACCESS_2_NONE_KHR'
--
--     -   'ACCESS_2_SHADER_READ_BIT_KHR'
--
--     -   'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR'
--
--     -   'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR'
--
--     -   'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR'
--
--     -   'ACCESS_2_SHADER_WRITE_BIT_KHR'
--
--     -   'ACCESS_2_TRANSFER_READ_BIT_KHR'
--
--     -   'ACCESS_2_TRANSFER_WRITE_BIT_KHR'
--
--     -   'ACCESS_2_UNIFORM_READ_BIT_KHR'
--
--     -   'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR'
--
-- -   Extending
--     'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits':
--
--     -   'EVENT_CREATE_DEVICE_ONLY_BIT_KHR'
--
-- -   Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':
--
--     -   'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'
--
--     -   'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'
--
-- -   Extending
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
--
--     -   'PIPELINE_STAGE_NONE_KHR'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_BLIT_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_CLEAR_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_COPY_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_HOST_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_NONE_KHR'
--
--     -   'PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_RESOLVE_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_TRANSFER_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR'
--
--     -   'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR'
--
-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
--
--     -   'STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'
--
--     -   'STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'
--
--     -   'STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'
--
--     -   'STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'
--
--     -   'STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'
--
--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR'
--
--     -   'STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'
--
--     -   'STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'
--
-- -   Extending 'Vulkan.Core13.Enums.SubmitFlagBits.SubmitFlagBits':
--
--     -   'SUBMIT_PROTECTED_BIT_KHR'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced VK_EXT_blend_operation_advanced>
-- is supported:
--
-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>
-- is supported:
--
-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT'
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT'
--
-- If
-- <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.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT'
--
--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR'
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'
--
-- If
-- <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.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_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.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV'
--
--     -   'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>
-- is supported:
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'
--
--     -   'PIPELINE_STAGE_2_TASK_SHADER_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV'
--
--     -   'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV'
--
--     -   'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV'
--
-- If
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>
-- is supported:
--
-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
--
--     -   'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV'
--
-- -   Extending
--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
--
--     -   'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'
--
-- == Promotion to Vulkan 1.3
--
-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
-- KHR suffix omitted. External interactions defined by this extension,
-- such as SPIR-V token names, retain their original names. The original
-- Vulkan API names are still available as aliases of the core
-- functionality.
--
-- == Examples
--
-- See
-- <https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples>
--
-- == Version History
--
-- -   Revision 1, 2020-12-03 (Tobias Hector)
--
--     -   Internal revisions
--
-- == 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_synchronization2 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_synchronization2  ( pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR
                                                  , pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR
                                                  , pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR
                                                  , pattern STRUCTURE_TYPE_DEPENDENCY_INFO_KHR
                                                  , pattern STRUCTURE_TYPE_SUBMIT_INFO_2_KHR
                                                  , pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR
                                                  , pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR
                                                  , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR
                                                  , pattern EVENT_CREATE_DEVICE_ONLY_BIT_KHR
                                                  , pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
                                                  , pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR
                                                  , pattern PIPELINE_STAGE_NONE_KHR
                                                  , pattern ACCESS_NONE_KHR
                                                  , pattern ACCESS_2_NONE_KHR
                                                  , pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR
                                                  , pattern ACCESS_2_INDEX_READ_BIT_KHR
                                                  , pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR
                                                  , pattern ACCESS_2_UNIFORM_READ_BIT_KHR
                                                  , pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR
                                                  , pattern ACCESS_2_SHADER_READ_BIT_KHR
                                                  , pattern ACCESS_2_SHADER_WRITE_BIT_KHR
                                                  , pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR
                                                  , pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR
                                                  , pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR
                                                  , pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR
                                                  , pattern ACCESS_2_TRANSFER_READ_BIT_KHR
                                                  , pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR
                                                  , pattern ACCESS_2_HOST_READ_BIT_KHR
                                                  , pattern ACCESS_2_HOST_WRITE_BIT_KHR
                                                  , pattern ACCESS_2_MEMORY_READ_BIT_KHR
                                                  , pattern ACCESS_2_MEMORY_WRITE_BIT_KHR
                                                  , pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR
                                                  , pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR
                                                  , pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_NONE_KHR
                                                  , pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_HOST_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_COPY_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_BLIT_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR
                                                  , pattern SUBMIT_PROTECTED_BIT_KHR
                                                  , pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV
                                                  , pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV
                                                  , pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV
                                                  , pattern PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
                                                  , pattern ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
                                                  , pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV
                                                  , pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV
                                                  , pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV
                                                  , pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV
                                                  , pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV
                                                  , pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV
                                                  , cmdSetEvent2KHR
                                                  , cmdResetEvent2KHR
                                                  , cmdWaitEvents2KHR
                                                  , cmdPipelineBarrier2KHR
                                                  , queueSubmit2KHR
                                                  , cmdWriteTimestamp2KHR
                                                  , AccessFlags2KHR
                                                  , PipelineStageFlags2KHR
                                                  , SubmitFlagsKHR
                                                  , AccessFlagBits2KHR
                                                  , PipelineStageFlagBits2KHR
                                                  , SubmitFlagBitsKHR
                                                  , MemoryBarrier2KHR
                                                  , ImageMemoryBarrier2KHR
                                                  , BufferMemoryBarrier2KHR
                                                  , DependencyInfoKHR
                                                  , SemaphoreSubmitInfoKHR
                                                  , CommandBufferSubmitInfoKHR
                                                  , SubmitInfo2KHR
                                                  , PhysicalDeviceSynchronization2FeaturesKHR
                                                  , KHR_SYNCHRONIZATION_2_SPEC_VERSION
                                                  , pattern KHR_SYNCHRONIZATION_2_SPEC_VERSION
                                                  , KHR_SYNCHRONIZATION_2_EXTENSION_NAME
                                                  , pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME
                                                  ) where

import Data.String (IsString)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdPipelineBarrier2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdResetEvent2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdSetEvent2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdWaitEvents2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdWriteTimestamp2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (queueSubmit2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (BufferMemoryBarrier2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (CommandBufferSubmitInfo)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (ImageMemoryBarrier2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (MemoryBarrier2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo)
import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlagBits)
import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlags)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SubmitInfo2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_COLOR_ATTACHMENT_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_HOST_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_HOST_WRITE_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_INDEX_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_INDIRECT_COMMAND_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_INPUT_ATTACHMENT_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_MEMORY_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_MEMORY_WRITE_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_NONE))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_SHADER_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_SHADER_SAMPLED_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_SHADER_STORAGE_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_SHADER_STORAGE_WRITE_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_SHADER_WRITE_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_TRANSFER_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_TRANSFER_WRITE_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_UNIFORM_READ_BIT))
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT))
import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)
import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_NONE))
import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlags)
import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlagBits(EVENT_CREATE_DEVICE_ONLY_BIT))
import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_ATTACHMENT_OPTIMAL))
import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_READ_ONLY_OPTIMAL))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_ALL_COMMANDS_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_ALL_GRAPHICS_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_ALL_TRANSFER_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_BLIT_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_CLEAR_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_COMPUTE_SHADER_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_COPY_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_DRAW_INDIRECT_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_HOST_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_INDEX_INPUT_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_NONE))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_RESOLVE_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_TOP_OF_PIPE_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_VERTEX_INPUT_BIT))
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_VERTEX_SHADER_BIT))
import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_NONE))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPENDENCY_INFO))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2))
import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlags)
import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlagBits(SUBMIT_PROTECTED_BIT))
-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR"
pattern $mSTRUCTURE_TYPE_MEMORY_BARRIER_2_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_MEMORY_BARRIER_2_KHR :: StructureType
STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_MEMORY_BARRIER_2


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR"
pattern $mSTRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR :: StructureType
STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR"
pattern $mSTRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR :: StructureType
STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR"
pattern $mSTRUCTURE_TYPE_DEPENDENCY_INFO_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_DEPENDENCY_INFO_KHR :: StructureType
STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = STRUCTURE_TYPE_DEPENDENCY_INFO


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR"
pattern $mSTRUCTURE_TYPE_SUBMIT_INFO_2_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_SUBMIT_INFO_2_KHR :: StructureType
STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = STRUCTURE_TYPE_SUBMIT_INFO_2


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR"
pattern $mSTRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR :: StructureType
STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR"
pattern $mSTRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR :: StructureType
STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO


-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR"
pattern $mSTRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR :: StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES


-- No documentation found for TopLevel "VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR"
pattern $mEVENT_CREATE_DEVICE_ONLY_BIT_KHR :: forall {r}.
EventCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bEVENT_CREATE_DEVICE_ONLY_BIT_KHR :: EventCreateFlagBits
EVENT_CREATE_DEVICE_ONLY_BIT_KHR = EVENT_CREATE_DEVICE_ONLY_BIT


-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR"
pattern $mIMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bIMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR :: ImageLayout
IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = IMAGE_LAYOUT_READ_ONLY_OPTIMAL


-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR"
pattern $mIMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bIMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR :: ImageLayout
IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = IMAGE_LAYOUT_ATTACHMENT_OPTIMAL


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_NONE_KHR"
pattern $mPIPELINE_STAGE_NONE_KHR :: forall {r}.
PipelineStageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_NONE_KHR :: PipelineStageFlagBits
PIPELINE_STAGE_NONE_KHR = PIPELINE_STAGE_NONE


-- No documentation found for TopLevel "VK_ACCESS_NONE_KHR"
pattern $mACCESS_NONE_KHR :: forall {r}. AccessFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_NONE_KHR :: AccessFlagBits
ACCESS_NONE_KHR = ACCESS_NONE


-- No documentation found for TopLevel "VK_ACCESS_2_NONE_KHR"
pattern $mACCESS_2_NONE_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_NONE_KHR :: AccessFlagBits2
ACCESS_2_NONE_KHR = ACCESS_2_NONE


-- No documentation found for TopLevel "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR"
pattern $mACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = ACCESS_2_INDIRECT_COMMAND_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_INDEX_READ_BIT_KHR"
pattern $mACCESS_2_INDEX_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_INDEX_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_INDEX_READ_BIT_KHR = ACCESS_2_INDEX_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR"
pattern $mACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_UNIFORM_READ_BIT_KHR"
pattern $mACCESS_2_UNIFORM_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_UNIFORM_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_UNIFORM_READ_BIT_KHR = ACCESS_2_UNIFORM_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR"
pattern $mACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = ACCESS_2_INPUT_ATTACHMENT_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_READ_BIT_KHR"
pattern $mACCESS_2_SHADER_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_SHADER_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_SHADER_READ_BIT_KHR = ACCESS_2_SHADER_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_WRITE_BIT_KHR"
pattern $mACCESS_2_SHADER_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_SHADER_WRITE_BIT_KHR :: AccessFlagBits2
ACCESS_2_SHADER_WRITE_BIT_KHR = ACCESS_2_SHADER_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR"
pattern $mACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = ACCESS_2_COLOR_ATTACHMENT_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR"
pattern $mACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR :: AccessFlagBits2
ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR"
pattern $mACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR"
pattern $mACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR :: AccessFlagBits2
ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_TRANSFER_READ_BIT_KHR"
pattern $mACCESS_2_TRANSFER_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_TRANSFER_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_TRANSFER_READ_BIT_KHR = ACCESS_2_TRANSFER_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR"
pattern $mACCESS_2_TRANSFER_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_TRANSFER_WRITE_BIT_KHR :: AccessFlagBits2
ACCESS_2_TRANSFER_WRITE_BIT_KHR = ACCESS_2_TRANSFER_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_HOST_READ_BIT_KHR"
pattern $mACCESS_2_HOST_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_HOST_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_HOST_READ_BIT_KHR = ACCESS_2_HOST_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_HOST_WRITE_BIT_KHR"
pattern $mACCESS_2_HOST_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_HOST_WRITE_BIT_KHR :: AccessFlagBits2
ACCESS_2_HOST_WRITE_BIT_KHR = ACCESS_2_HOST_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_MEMORY_READ_BIT_KHR"
pattern $mACCESS_2_MEMORY_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_MEMORY_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_MEMORY_READ_BIT_KHR = ACCESS_2_MEMORY_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_MEMORY_WRITE_BIT_KHR"
pattern $mACCESS_2_MEMORY_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_MEMORY_WRITE_BIT_KHR :: AccessFlagBits2
ACCESS_2_MEMORY_WRITE_BIT_KHR = ACCESS_2_MEMORY_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR"
pattern $mACCESS_2_SHADER_SAMPLED_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_SHADER_SAMPLED_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = ACCESS_2_SHADER_SAMPLED_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR"
pattern $mACCESS_2_SHADER_STORAGE_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_SHADER_STORAGE_READ_BIT_KHR :: AccessFlagBits2
ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = ACCESS_2_SHADER_STORAGE_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR"
pattern $mACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR :: AccessFlagBits2
ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = ACCESS_2_SHADER_STORAGE_WRITE_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_NONE_KHR"
pattern $mPIPELINE_STAGE_2_NONE_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_NONE_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_NONE_KHR = PIPELINE_STAGE_2_NONE


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR"
pattern $mPIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = PIPELINE_STAGE_2_TOP_OF_PIPE_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR"
pattern $mPIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = PIPELINE_STAGE_2_DRAW_INDIRECT_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR"
pattern $mPIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = PIPELINE_STAGE_2_VERTEX_INPUT_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR"
pattern $mPIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = PIPELINE_STAGE_2_VERTEX_SHADER_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR"
pattern $mPIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR"
pattern $mPIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR"
pattern $mPIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR"
pattern $mPIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR"
pattern $mPIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR"
pattern $mPIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR"
pattern $mPIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR"
pattern $mPIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = PIPELINE_STAGE_2_COMPUTE_SHADER_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR"
pattern $mPIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_ALL_TRANSFER_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR"
pattern $mPIPELINE_STAGE_2_TRANSFER_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_TRANSFER_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_ALL_TRANSFER_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR"
pattern $mPIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_HOST_BIT_KHR"
pattern $mPIPELINE_STAGE_2_HOST_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_HOST_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_HOST_BIT_KHR = PIPELINE_STAGE_2_HOST_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR"
pattern $mPIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = PIPELINE_STAGE_2_ALL_GRAPHICS_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR"
pattern $mPIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = PIPELINE_STAGE_2_ALL_COMMANDS_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COPY_BIT_KHR"
pattern $mPIPELINE_STAGE_2_COPY_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_COPY_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_COPY_BIT_KHR = PIPELINE_STAGE_2_COPY_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR"
pattern $mPIPELINE_STAGE_2_RESOLVE_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_RESOLVE_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_RESOLVE_BIT_KHR = PIPELINE_STAGE_2_RESOLVE_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_BLIT_BIT_KHR"
pattern $mPIPELINE_STAGE_2_BLIT_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_BLIT_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_BLIT_BIT_KHR = PIPELINE_STAGE_2_BLIT_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR"
pattern $mPIPELINE_STAGE_2_CLEAR_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_CLEAR_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_CLEAR_BIT_KHR = PIPELINE_STAGE_2_CLEAR_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR"
pattern $mPIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = PIPELINE_STAGE_2_INDEX_INPUT_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR"
pattern $mPIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR"
pattern $mPIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR :: PipelineStageFlagBits2
PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT


-- No documentation found for TopLevel "VK_SUBMIT_PROTECTED_BIT_KHR"
pattern $mSUBMIT_PROTECTED_BIT_KHR :: forall {r}. SubmitFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bSUBMIT_PROTECTED_BIT_KHR :: SubmitFlagBits
SUBMIT_PROTECTED_BIT_KHR = SUBMIT_PROTECTED_BIT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"
pattern $mPIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV :: PipelineStageFlagBits2
PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT


-- No documentation found for TopLevel "VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"
pattern $mACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV :: AccessFlagBits2
ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT


-- No documentation found for TopLevel "VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"
pattern $mACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV :: AccessFlagBits2
ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV"
pattern $mPIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV :: PipelineStageFlagBits2
PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR


-- No documentation found for TopLevel "VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV"
pattern $mACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV :: AccessFlagBits2
ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV"
pattern $mPIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV :: PipelineStageFlagBits2
PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV"
pattern $mPIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV :: PipelineStageFlagBits2
PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR


-- No documentation found for TopLevel "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV"
pattern $mACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV :: AccessFlagBits2
ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR


-- No documentation found for TopLevel "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV"
pattern $mACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV :: forall {r}. AccessFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV :: AccessFlagBits2
ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"
pattern $mPIPELINE_STAGE_2_TASK_SHADER_BIT_NV :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_TASK_SHADER_BIT_NV :: PipelineStageFlagBits2
PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT


-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"
pattern $mPIPELINE_STAGE_2_MESH_SHADER_BIT_NV :: forall {r}.
PipelineStageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_STAGE_2_MESH_SHADER_BIT_NV :: PipelineStageFlagBits2
PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT


-- No documentation found for TopLevel "vkCmdSetEvent2KHR"
cmdSetEvent2KHR :: CommandBuffer -> Event -> DependencyInfo a -> io ()
cmdSetEvent2KHR = CommandBuffer -> Event -> DependencyInfo a -> io ()
forall (a :: [*]) (io :: * -> *).
(Extendss DependencyInfo a, PokeChain a, MonadIO io) =>
CommandBuffer -> Event -> DependencyInfo a -> io ()
cmdSetEvent2


-- No documentation found for TopLevel "vkCmdResetEvent2KHR"
cmdResetEvent2KHR :: CommandBuffer -> Event -> PipelineStageFlagBits2 -> io ()
cmdResetEvent2KHR = CommandBuffer -> Event -> PipelineStageFlagBits2 -> io ()
forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> Event -> PipelineStageFlagBits2 -> io ()
cmdResetEvent2


-- No documentation found for TopLevel "vkCmdWaitEvents2KHR"
cmdWaitEvents2KHR :: CommandBuffer
-> ("events" ::: Vector Event)
-> ("dependencyInfos" ::: Vector (SomeStruct DependencyInfo))
-> io ()
cmdWaitEvents2KHR = CommandBuffer
-> ("events" ::: Vector Event)
-> ("dependencyInfos" ::: Vector (SomeStruct DependencyInfo))
-> io ()
forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> ("events" ::: Vector Event)
-> ("dependencyInfos" ::: Vector (SomeStruct DependencyInfo))
-> io ()
cmdWaitEvents2


-- No documentation found for TopLevel "vkCmdPipelineBarrier2KHR"
cmdPipelineBarrier2KHR :: CommandBuffer -> DependencyInfo a -> io ()
cmdPipelineBarrier2KHR = CommandBuffer -> DependencyInfo a -> io ()
forall (a :: [*]) (io :: * -> *).
(Extendss DependencyInfo a, PokeChain a, MonadIO io) =>
CommandBuffer -> DependencyInfo a -> io ()
cmdPipelineBarrier2


-- No documentation found for TopLevel "vkQueueSubmit2KHR"
queueSubmit2KHR :: Queue
-> ("submits" ::: Vector (SomeStruct SubmitInfo2))
-> Fence
-> io ()
queueSubmit2KHR = Queue
-> ("submits" ::: Vector (SomeStruct SubmitInfo2))
-> Fence
-> io ()
forall (io :: * -> *).
MonadIO io =>
Queue
-> ("submits" ::: Vector (SomeStruct SubmitInfo2))
-> Fence
-> io ()
queueSubmit2


-- No documentation found for TopLevel "vkCmdWriteTimestamp2KHR"
cmdWriteTimestamp2KHR :: CommandBuffer
-> PipelineStageFlagBits2
-> QueryPool
-> ("query" ::: Word32)
-> io ()
cmdWriteTimestamp2KHR = CommandBuffer
-> PipelineStageFlagBits2
-> QueryPool
-> ("query" ::: Word32)
-> io ()
forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> PipelineStageFlagBits2
-> QueryPool
-> ("query" ::: Word32)
-> io ()
cmdWriteTimestamp2


-- No documentation found for TopLevel "VkAccessFlags2KHR"
type AccessFlags2KHR = AccessFlags2


-- No documentation found for TopLevel "VkPipelineStageFlags2KHR"
type PipelineStageFlags2KHR = PipelineStageFlags2


-- No documentation found for TopLevel "VkSubmitFlagsKHR"
type SubmitFlagsKHR = SubmitFlags


-- No documentation found for TopLevel "VkAccessFlagBits2KHR"
type AccessFlagBits2KHR = AccessFlagBits2


-- No documentation found for TopLevel "VkPipelineStageFlagBits2KHR"
type PipelineStageFlagBits2KHR = PipelineStageFlagBits2


-- No documentation found for TopLevel "VkSubmitFlagBitsKHR"
type SubmitFlagBitsKHR = SubmitFlagBits


-- No documentation found for TopLevel "VkMemoryBarrier2KHR"
type MemoryBarrier2KHR = MemoryBarrier2


-- No documentation found for TopLevel "VkImageMemoryBarrier2KHR"
type ImageMemoryBarrier2KHR = ImageMemoryBarrier2


-- No documentation found for TopLevel "VkBufferMemoryBarrier2KHR"
type BufferMemoryBarrier2KHR = BufferMemoryBarrier2


-- No documentation found for TopLevel "VkDependencyInfoKHR"
type DependencyInfoKHR = DependencyInfo


-- No documentation found for TopLevel "VkSemaphoreSubmitInfoKHR"
type SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo


-- No documentation found for TopLevel "VkCommandBufferSubmitInfoKHR"
type CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo


-- No documentation found for TopLevel "VkSubmitInfo2KHR"
type SubmitInfo2KHR = SubmitInfo2


-- No documentation found for TopLevel "VkPhysicalDeviceSynchronization2FeaturesKHR"
type PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features


type KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1

-- No documentation found for TopLevel "VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION"
pattern KHR_SYNCHRONIZATION_2_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_SYNCHRONIZATION_2_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SYNCHRONIZATION_2_SPEC_VERSION :: forall a. Integral a => a
KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1


type KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2"

-- No documentation found for TopLevel "VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME"
pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_SYNCHRONIZATION_2_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SYNCHRONIZATION_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2"