packages feed

vulkan 3.4 → 3.5

raw patch · 55 files changed

+2890/−437 lines, 55 files

Files

changelog.md view
@@ -2,6 +2,12 @@  ## WIP +## [3.5] - 2020-06-22+  - Bump API version to 1.2.145+  - Bump API version to 1.2.143+  - Bump API version to 1.2.144+    - Only documentation and version number changes+ ## [3.4] - 2020-06-03   - Bump API version to 1.2.142     - The spec includes specific locations for types, so we use them
readme.md view
@@ -298,6 +298,10 @@ - `pkg-config` and `SDL2` to build the Haskell `sdl2` package. - `glslang` (for the `glslangValidator` binary, to build the shaders) +Jonathan Merritt has made an excellent video detailing how to set up everything +necessary for running the examples on macOS +[here](https://www.youtube.com/watch?v=BaBt-CNBfd0).+ ### Building on Windows  - Clone this repo
src/Vulkan/CStruct/Extends.hs view
@@ -330,6 +330,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalBufferInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (PhysicalDeviceExternalFenceInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo)@@ -725,6 +726,7 @@   Extends DescriptorSetLayoutSupport DescriptorSetVariableDescriptorCountLayoutSupport = ()   Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()   Extends DeviceCreateInfo DevicePrivateDataCreateInfoEXT = ()+  Extends DeviceCreateInfo PhysicalDevicePrivateDataFeaturesEXT = ()   Extends DeviceCreateInfo (PhysicalDeviceFeatures2 '[]) = ()   Extends DeviceCreateInfo PhysicalDeviceVariablePointersFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceMultiviewFeatures = ()@@ -787,6 +789,7 @@   Extends DeviceCreateInfo PhysicalDeviceVulkan12Features = ()   Extends DeviceCreateInfo PhysicalDeviceCoherentMemoryFeaturesAMD = ()   Extends DeviceCreateInfo PhysicalDeviceCustomBorderColorFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = ()   Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = ()   Extends DeviceCreateInfo PhysicalDeviceRobustness2FeaturesEXT = ()@@ -840,6 +843,7 @@   Extends MemoryRequirements2 MemoryDedicatedRequirements = ()   Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()+  Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceVariablePointersFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDevice16BitStorageFeatures = ()@@ -899,6 +903,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkan12Features = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceCoherentMemoryFeaturesAMD = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceCustomBorderColorFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()@@ -1132,6 +1137,7 @@   STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV -> go @Win32KeyedMutexAcquireReleaseInfoNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV   STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT -> go @DevicePrivateDataCreateInfoEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT -> go @PhysicalDevicePrivateDataFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsPropertiesNV   STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV -> go @GraphicsPipelineShaderGroupsCreateInfoNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 -> go @(PhysicalDeviceFeatures2 '[])@@ -1349,6 +1355,7 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT -> go @PhysicalDeviceCustomBorderColorPropertiesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT -> go @PhysicalDeviceCustomBorderColorFeaturesEXT   STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR -> go @DeferredOperationInfoKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceExtendedDynamicStateFeaturesEXT   STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM -> go @RenderPassTransformBeginInfoQCOM   STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> go @CommandBufferInheritanceRenderPassTransformInfoQCOM   STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV -> go @PhysicalDeviceDiagnosticsConfigFeaturesNV@@ -1422,6 +1429,7 @@ {-# complete (::&) :: Win32KeyedMutexAcquireReleaseInfoNV #-} {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsFeaturesNV #-} {-# complete (::&) :: DevicePrivateDataCreateInfoEXT #-}+{-# complete (::&) :: PhysicalDevicePrivateDataFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsPropertiesNV #-} {-# complete (::&) :: GraphicsPipelineShaderGroupsCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceFeatures2 #-}@@ -1639,6 +1647,7 @@ {-# complete (::&) :: PhysicalDeviceCustomBorderColorPropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceCustomBorderColorFeaturesEXT #-} {-# complete (::&) :: DeferredOperationInfoKHR #-}+{-# complete (::&) :: PhysicalDeviceExtendedDynamicStateFeaturesEXT #-} {-# complete (::&) :: RenderPassTransformBeginInfoQCOM #-} {-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-} {-# complete (::&) :: PhysicalDeviceDiagnosticsConfigFeaturesNV #-}
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -1746,6 +1746,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -1780,6 +1785,59 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set --+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+-- -- -   If @commandBuffer@ is a protected command buffer, any resource --     written to by the 'Vulkan.Core10.Handles.Pipeline' object bound to --     the pipeline bind point used by this command /must/ not be an@@ -1881,7 +1939,7 @@ -- 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer was -- bound. ----- The first vertex index is at an offset of @firstIndex@ * @indexSize@ ++-- The first vertex index is at an offset of @firstIndex@ × @indexSize@ + -- @offset@ within the bound index buffer, where @offset@ is the offset -- specified by 'cmdBindIndexBuffer' and @indexSize@ is the byte size of -- the type specified by @indexType@. Subsequent index values are retrieved@@ -2034,6 +2092,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -2068,6 +2131,59 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set --+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+-- -- -   If @commandBuffer@ is a protected command buffer, any resource --     written to by the 'Vulkan.Core10.Handles.Pipeline' object bound to --     the pipeline bind point used by this command /must/ not be an@@ -2094,7 +2210,7 @@ --     binding, as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   (@indexSize@ * (@firstIndex@ + @indexCount@) + @offset@) /must/ be+-- -   (@indexSize@ × (@firstIndex@ + @indexCount@) + @offset@) /must/ be --     less than or equal to the size of the bound index buffer, with --     @indexSize@ being based on the type specified by @indexType@, where --     the index buffer, @indexType@, and @offset@ are specified via@@ -2316,6 +2432,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -2350,6 +2471,59 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set --+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+-- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have --     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers@@ -2622,6 +2796,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -2656,6 +2835,59 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set --+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+-- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have --     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers@@ -2928,6 +3160,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   If @commandBuffer@ is a protected command buffer, any resource --     written to by the 'Vulkan.Core10.Handles.Pipeline' object bound to --     the pipeline bind point used by this command /must/ not be an@@ -3160,6 +3397,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   If @buffer@ is non-sparse then it /must/ be bound completely and --     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object --@@ -3252,6 +3494,15 @@ -- -- == Valid Usage --+-- -   If @commandBuffer@ is an unprotected command buffer, then+--     @srcBuffer@ /must/ not be a protected buffer+--+-- -   If @commandBuffer@ is an unprotected command buffer, then+--     @dstBuffer@ /must/ not be a protected buffer+--+-- -   If @commandBuffer@ is a protected command buffer, then @dstBuffer@+--     /must/ not be an unprotected buffer+-- -- -   The @srcOffset@ member of each element of @pRegions@ /must/ be less --     than the size of @srcBuffer@ --@@ -3282,15 +3533,6 @@ -- -   If @dstBuffer@ is non-sparse then it /must/ be bound completely and --     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object ----- -   If @commandBuffer@ is an unprotected command buffer, then---     @srcBuffer@ /must/ not be a protected buffer------ -   If @commandBuffer@ is an unprotected command buffer, then---     @dstBuffer@ /must/ not be a protected buffer------ -   If @commandBuffer@ is a protected command buffer, then @dstBuffer@---     /must/ not be an unprotected buffer--- -- == Valid Usage (Implicit) -- -- -   @commandBuffer@ /must/ be a valid@@ -3490,6 +3732,15 @@ -- -- == Valid Usage --+-- -   If @commandBuffer@ is an unprotected command buffer, then @srcImage@+--     /must/ not be a protected image+--+-- -   If @commandBuffer@ is an unprotected command buffer, then @dstImage@+--     /must/ not be a protected image+--+-- -   If @commandBuffer@ is a protected command buffer, then @dstImage@+--     /must/ not be an unprotected image+-- -- -   The union of all source regions, and the union of all destination --     regions, specified by the elements of @pRegions@, /must/ not overlap --     in memory@@ -3554,15 +3805,6 @@ -- -- -   The sample count of @srcImage@ and @dstImage@ /must/ match ----- -   If @commandBuffer@ is an unprotected command buffer, then @srcImage@---     /must/ not be a protected image------ -   If @commandBuffer@ is an unprotected command buffer, then @dstImage@---     /must/ not be a protected image------ -   If @commandBuffer@ is a protected command buffer, then @dstImage@---     /must/ not be an unprotected image--- -- -   The @srcSubresource.mipLevel@ member of each element of @pRegions@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created@@ -3724,17 +3966,17 @@ -- -   The scale is determined from the source and destination regions, and --     applied to the offset coordinates: -----     -   scale_u = (xsrc1 - xsrc0) \/ (xdst1 - xdst0)+--     -   scaleu = (xsrc1 - xsrc0) \/ (xdst1 - xdst0) -----     -   scale_v = (ysrc1 - ysrc0) \/ (ydst1 - ydst0)+--     -   scalev = (ysrc1 - ysrc0) \/ (ydst1 - ydst0) -----     -   scale_w = (zsrc1 - zsrc0) \/ (zdst1 - zdst0)+--     -   scalew = (zsrc1 - zsrc0) \/ (zdst1 - zdst0) -----     -   uscaled = uoffset * scaleu+--     -   uscaled = uoffset × scaleu -----     -   vscaled = voffset * scalev+--     -   vscaled = voffset × scalev -----     -   wscaled = woffset * scalew+--     -   wscaled = woffset × scalew -- -- -   Finally the source offset is added to the scaled coordinates, to --     determine the final unnormalized coordinates used to sample from@@ -3810,6 +4052,15 @@ -- -- == Valid Usage --+-- -   If @commandBuffer@ is an unprotected command buffer, then @srcImage@+--     /must/ not be a protected image+--+-- -   If @commandBuffer@ is an unprotected command buffer, then @dstImage@+--     /must/ not be a protected image+--+-- -   If @commandBuffer@ is a protected command buffer, then @dstImage@+--     /must/ not be an unprotected image+-- -- -   The source region specified by each element of @pRegions@ /must/ be --     a region that is contained within @srcImage@ --@@ -3826,7 +4077,7 @@ --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT' -- -- -   @srcImage@ /must/ not use a format listed in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion ???> -- -- -   @srcImage@ /must/ have been created with --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'@@ -3850,7 +4101,7 @@ --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT' -- -- -   @dstImage@ /must/ not use a format listed in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion ???> -- -- -   @dstImage@ /must/ have been created with --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'@@ -3906,15 +4157,6 @@ --     /must/ have a 'Vulkan.Core10.Enums.ImageType.ImageType' of --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' ----- -   If @commandBuffer@ is an unprotected command buffer, then @srcImage@---     /must/ not be a protected image------ -   If @commandBuffer@ is an unprotected command buffer, then @dstImage@---     /must/ not be a protected image------ -   If @commandBuffer@ is a protected command buffer, then @dstImage@---     /must/ not be an unprotected image--- -- -   The @srcSubresource.mipLevel@ member of each element of @pRegions@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created@@ -4060,6 +4302,15 @@ -- -- == Valid Usage --+-- -   If @commandBuffer@ is an unprotected command buffer, then+--     @srcBuffer@ /must/ not be a protected buffer+--+-- -   If @commandBuffer@ is an unprotected command buffer, then @dstImage@+--     /must/ not be a protected image+--+-- -   If @commandBuffer@ is a protected command buffer, then @dstImage@+--     /must/ not be an unprotected image+-- -- -   @srcBuffer@ /must/ be large enough to contain all buffer locations --     that are accessed according to --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,@@ -4108,15 +4359,6 @@ --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' ----- -   If @commandBuffer@ is an unprotected command buffer, then---     @srcBuffer@ /must/ not be a protected buffer------ -   If @commandBuffer@ is an unprotected command buffer, then @dstImage@---     /must/ not be a protected image------ -   If @commandBuffer@ is a protected command buffer, then @dstImage@---     /must/ not be an unprotected image--- -- -   The @imageSubresource.mipLevel@ member of each element of @pRegions@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created@@ -4260,6 +4502,15 @@ -- -- == Valid Usage --+-- -   If @commandBuffer@ is an unprotected command buffer, then @srcImage@+--     /must/ not be a protected image+--+-- -   If @commandBuffer@ is an unprotected command buffer, then+--     @dstBuffer@ /must/ not be a protected buffer+--+-- -   If @commandBuffer@ is a protected command buffer, then @dstBuffer@+--     /must/ not be an unprotected buffer+-- -- -   The image region specified by each element of @pRegions@ /must/ be a --     region that is contained within @srcImage@ if the @srcImage@’s --     'Vulkan.Core10.Enums.Format.Format' is not a@@ -4308,15 +4559,6 @@ -- -   If @dstBuffer@ is non-sparse then it /must/ be bound completely and --     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object ----- -   If @commandBuffer@ is an unprotected command buffer, then @srcImage@---     /must/ not be a protected image------ -   If @commandBuffer@ is an unprotected command buffer, then---     @dstBuffer@ /must/ not be a protected buffer------ -   If @commandBuffer@ is a protected command buffer, then @dstBuffer@---     /must/ not be an unprotected buffer--- -- -   The @imageSubresource.mipLevel@ member of each element of @pRegions@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created@@ -5233,7 +5475,8 @@ -- @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets -- in texels of the sub-regions of the source and destination image data. -- @extent@ is the size in texels of the source image to resolve in--- @width@, @height@ and @depth@.+-- @width@, @height@ and @depth@. Each element of @pRegions@ /must/ be a+-- region that is contained within its corresponding image. -- -- Resolves are done layer by layer starting with @baseArrayLayer@ member -- of @srcSubresource@ for the source and @dstSubresource@ for the@@ -5241,12 +5484,15 @@ -- -- == Valid Usage ----- -   The source region specified by each element of @pRegions@ /must/ be---     a region that is contained within @srcImage@+-- -   If @commandBuffer@ is an unprotected command buffer, then @srcImage@+--     /must/ not be a protected image ----- -   The destination region specified by each element of @pRegions@---     /must/ be a region that is contained within @dstImage@+-- -   If @commandBuffer@ is an unprotected command buffer, then @dstImage@+--     /must/ not be a protected image --+-- -   If @commandBuffer@ is a protected command buffer, then @dstImage@+--     /must/ not be an unprotected image+-- -- -   The union of all source regions, and the union of all destination --     regions, specified by the elements of @pRegions@, /must/ not overlap --     in memory@@ -5290,15 +5536,6 @@ -- -   @srcImage@ and @dstImage@ /must/ have been created with the same --     image format ----- -   If @commandBuffer@ is an unprotected command buffer, then @srcImage@---     /must/ not be a protected image------ -   If @commandBuffer@ is an unprotected command buffer, then @dstImage@---     /must/ not be a protected image------ -   If @commandBuffer@ is a protected command buffer, then @dstImage@---     /must/ not be an unprotected image--- -- -   The @srcSubresource.mipLevel@ member of each element of @pRegions@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created@@ -5439,9 +5676,6 @@ -- -- == Valid Usage ----- -   @stageMask@ /must/ not include---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'--- -- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders> --     feature is not enabled, @stageMask@ /must/ not contain@@ -5454,10 +5688,22 @@ --     or --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' ----- -   @commandBuffer@’s current device mask /must/ include exactly one---     physical device+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- -- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders> --     feature is not enabled, @stageMask@ /must/ not contain --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'@@ -5467,6 +5713,25 @@ --     feature is not enabled, @stageMask@ /must/ not contain --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV' --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   Any pipeline stage included in @stageMask@ /must/ be supported by+--     the capabilities of the queue family specified by the+--     @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   @stageMask@ /must/ not include+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'+--+-- -   @commandBuffer@’s current device mask /must/ include exactly one+--     physical device+-- -- == Valid Usage (Implicit) -- -- -   @commandBuffer@ /must/ be a valid@@ -5569,9 +5834,6 @@ -- -- == Valid Usage ----- -   @stageMask@ /must/ not include---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'--- -- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders> --     feature is not enabled, @stageMask@ /must/ not contain@@ -5584,13 +5846,22 @@ --     or --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' ----- -   When this command executes, @event@ /must/ not be waited on by a---     'cmdWaitEvents' command that is currently executing+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' ----- -   @commandBuffer@’s current device mask /must/ include exactly one---     physical device+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders> --     feature is not enabled, @stageMask@ /must/ not contain --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'@@ -5600,6 +5871,28 @@ --     feature is not enabled, @stageMask@ /must/ not contain --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV' --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   Any pipeline stage included in @stageMask@ /must/ be supported by+--     the capabilities of the queue family specified by the+--     @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   @stageMask@ /must/ not include+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'+--+-- -   When this command executes, @event@ /must/ not be waited on by a+--     'cmdWaitEvents' command that is currently executing+--+-- -   @commandBuffer@’s current device mask /must/ include exactly one+--     physical device+-- -- == Valid Usage (Implicit) -- -- -   @commandBuffer@ /must/ be a valid@@ -5806,6 +6099,106 @@ -- -- == Valid Usage --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   Any pipeline stage included in @srcStageMask@ /must/ be supported by+--     the capabilities of the queue family specified by the+--     @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   Any pipeline stage included in @dstStageMask@ /must/ be supported by+--     the capabilities of the queue family specified by the+--     @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+-- -- -   The @srcAccessMask@ member of each element of @pMemoryBarriers@ --     /must/ only include access flags that are supported by one or more --     of the pipeline stages in @srcStageMask@, as specified in the@@ -5859,43 +6252,11 @@ --     if any of the members of @pEvents@ was set using --     'Vulkan.Core10.Event.setEvent' ----- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'--- -- -   If @pEvents@ includes one or more events that will be signaled by --     'Vulkan.Core10.Event.setEvent' after @commandBuffer@ has been --     submitted to a queue, then 'cmdWaitEvents' /must/ not be called --     inside a render pass instance ----- -   Any pipeline stage included in @srcStageMask@ or @dstStageMask@---     /must/ be supported by the capabilities of the queue family---     specified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was---     used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>--- -- -   The @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any --     element of @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ /must/ --     be equal@@ -5903,26 +6264,6 @@ -- -   @commandBuffer@’s current device mask /must/ include exactly one --     physical device ----- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'--- -- == Valid Usage (Implicit) -- -- -   @commandBuffer@ /must/ be a valid@@ -6128,77 +6469,82 @@ -- -- == Valid Usage ----- -   If 'cmdPipelineBarrier' is called within a render pass instance, the---     render pass /must/ have been created with at least one---     'Vulkan.Core10.Pass.SubpassDependency' instance in---     'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pDependencies@ that---     expresses a dependency from the current subpass to itself, with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>---     that are all supersets of the scopes defined in this command+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT' ----- -   If 'cmdPipelineBarrier' is called within a render pass instance, it---     /must/ not include any buffer memory barriers+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' ----- -   If 'cmdPipelineBarrier' is called within a render pass instance, the---     @image@ member of any image memory barrier included in this command---     /must/ be an attachment used in the current subpass both as an input---     attachment, and as either a color or depth\/stencil attachment+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' ----- -   If 'cmdPipelineBarrier' is called within a render pass instance, the---     @oldLayout@ and @newLayout@ members of any image memory barrier---     included in this command /must/ be equal+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' ----- -   If 'cmdPipelineBarrier' is called within a render pass instance, the---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any image---     memory barrier included in this command /must/ be equal+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' ----- -   If 'cmdPipelineBarrier' is called outside of a render pass instance,---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'---     /must/ not be included in the dependency flags+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV' -- -- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders> --     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV' -- -- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   Any pipeline stage included in @srcStageMask@ /must/ be supported by+--     the capabilities of the queue family specified by the+--     @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders> --     feature is not enabled, @dstStageMask@ /must/ not contain --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT' -- -- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain+--     feature is not enabled, @dstStageMask@ /must/ not contain --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT' --     or --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' -- -- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering> --     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   Any pipeline stage included in @srcStageMask@ or @dstStageMask@---     /must/ be supported by the capabilities of the queue family---     specified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was---     used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- -- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- -- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>@@ -6210,6 +6556,19 @@ --     feature is not enabled, @dstStageMask@ /must/ not contain --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV' --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   Any pipeline stage included in @dstStageMask@ /must/ be supported by+--     the capabilities of the queue family specified by the+--     @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+-- -- -   The @srcAccessMask@ member of each element of @pMemoryBarriers@ --     /must/ only include access flags that are supported by one or more --     of the pipeline stages in @srcStageMask@, as specified in the@@ -6256,6 +6615,36 @@ --     @dstStageMask@, as specified in the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> --+-- -   If 'cmdPipelineBarrier' is called within a render pass instance, the+--     render pass /must/ have been created with at least one+--     'Vulkan.Core10.Pass.SubpassDependency' instance in+--     'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pDependencies@ that+--     expresses a dependency from the current subpass to itself, with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+--     that are all supersets of the scopes defined in this command+--+-- -   If 'cmdPipelineBarrier' is called within a render pass instance, it+--     /must/ not include any buffer memory barriers+--+-- -   If 'cmdPipelineBarrier' is called within a render pass instance, the+--     @image@ member of any image memory barrier included in this command+--     /must/ be an attachment used in the current subpass both as an input+--     attachment, and as either a color or depth\/stencil attachment+--+-- -   If 'cmdPipelineBarrier' is called within a render pass instance, the+--     @oldLayout@ and @newLayout@ members of any image memory barrier+--     included in this command /must/ be equal+--+-- -   If 'cmdPipelineBarrier' is called within a render pass instance, the+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any image+--     memory barrier included in this command /must/ be equal+--+-- -   If 'cmdPipelineBarrier' is called outside of a render pass instance,+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'+--     /must/ not be included in the dependency flags+-- -- == Valid Usage (Implicit) -- -- -   @commandBuffer@ /must/ be a valid@@ -7440,6 +7829,36 @@ --     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT' --     set --+-- -   Each element of the @pAttachments@ of @framebuffer@ that is+--     referenced by any element of the @pInputAttachments@ of any element+--     of @pSubpasses@ of @renderPass@ /must/ have+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>+--     containing at least+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--     or+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   Each element of the @pAttachments@ of @framebuffer@ that is+--     referenced by any element of the @pColorAttachments@ of any element+--     of @pSubpasses@ of @renderPass@ /must/ have+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>+--     containing+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- -   Each element of the @pAttachments@ of @framebuffer@ that is+--     referenced by any element of the @pResolveAttachments@ of any+--     element of @pSubpasses@ of @renderPass@ /must/ have+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>+--     containing+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- -   Each element of the @pAttachments@ of @framebuffer@ that is+--     referenced by any element of the @pDepthStencilAttachment@ of any+--     element of @pSubpasses@ of @renderPass@ /must/ have+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>+--     containing+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+-- -- == Valid Usage (Implicit) -- -- -   @commandBuffer@ /must/ be a valid@@ -8604,7 +9023,7 @@ --     then @bufferOffset@ /must/ be a multiple of the element size of the --     compatible format for the format and the @aspectMask@ of the --     @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes>+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???> -- -- -   @bufferRowLength@ /must/ be @0@, or greater than or equal to the --     @width@ member of @imageExtent@
src/Vulkan/Core10/Device.hs view
@@ -98,6 +98,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT)@@ -114,6 +115,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (PhysicalDeviceRayTracingFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)@@ -616,6 +618,7 @@ --     'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV', --     'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', --     'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT', --     'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',@@ -631,6 +634,7 @@ --     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', --     'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT', --     'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',+--     'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', --     'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', --     'Vulkan.Extensions.VK_KHR_ray_tracing.PhysicalDeviceRayTracingFeaturesKHR', --     'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',@@ -735,6 +739,7 @@     | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f     | Just Refl <- eqT @e @DeviceDiagnosticsConfigCreateInfoNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan12Features = Just f@@ -797,6 +802,7 @@     | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f     | Just Refl <- eqT @e @(PhysicalDeviceFeatures2 '[]) = Just f+    | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeaturesEXT = Just f     | Just Refl <- eqT @e @DevicePrivateDataCreateInfoEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f     | otherwise = Nothing
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -2925,7 +2925,7 @@     -- be created with @samples@ equal to     -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'. This also     -- specifies whether shader modules /can/ declare the-    -- @StorageImageMultisample@ capability.+    -- @StorageImageMultisample@ and @ImageMSArray@ capabilities.     shaderStorageImageMultisample :: Bool   , -- | @shaderStorageImageReadWithoutFormat@ specifies whether storage images     -- require a format qualifier to be specified when reading from storage
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -179,6 +179,7 @@ -- | 'ACCESS_SHADER_READ_BIT' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-binding-table shader binding table>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>,
src/Vulkan/Core10/Enums/CompareOp.hs view
@@ -30,7 +30,9 @@ -- -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo',--- 'Vulkan.Core10.Pipeline.StencilOpState'+-- 'Vulkan.Core10.Pipeline.StencilOpState',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT' newtype CompareOp = CompareOp Int32   deriving newtype (Eq, Ord, Storable, Zero) 
+ src/Vulkan/Core10/Enums/CompareOp.hs-boot view
@@ -0,0 +1,7 @@+{-# language CPP #-}+module Vulkan.Core10.Enums.CompareOp  (CompareOp) where++++data CompareOp+
+ src/Vulkan/Core10/Enums/CullModeFlagBits.hs-boot view
@@ -0,0 +1,11 @@+{-# language CPP #-}+module Vulkan.Core10.Enums.CullModeFlagBits  ( CullModeFlagBits+                                             , CullModeFlags+                                             ) where++++data CullModeFlagBits++type CullModeFlags = CullModeFlagBits+
src/Vulkan/Core10/Enums/DynamicState.hs view
@@ -8,6 +8,18 @@                                                       , DYNAMIC_STATE_STENCIL_COMPARE_MASK                                                       , DYNAMIC_STATE_STENCIL_WRITE_MASK                                                       , DYNAMIC_STATE_STENCIL_REFERENCE+                                                      , DYNAMIC_STATE_STENCIL_OP_EXT+                                                      , DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT+                                                      , DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT+                                                      , DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT+                                                      , DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT+                                                      , DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT+                                                      , DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT+                                                      , DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT+                                                      , DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT+                                                      , DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT+                                                      , DYNAMIC_STATE_FRONT_FACE_EXT+                                                      , DYNAMIC_STATE_CULL_MODE_EXT                                                       , DYNAMIC_STATE_LINE_STIPPLE_EXT                                                       , DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV                                                       , DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV@@ -115,6 +127,90 @@ -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member -- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE' pattern DYNAMIC_STATE_STENCIL_REFERENCE = DynamicState 8+-- | 'DYNAMIC_STATE_STENCIL_OP_EXT' specifies that the @failOp@, @passOp@,+-- @depthFailOp@, and @compareOp@ states in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' for both+-- @front@ and @back@ will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT'+-- before any draws are performed with a pipeline state with+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member+-- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'+pattern DYNAMIC_STATE_STENCIL_OP_EXT = DynamicState 1000267011+-- | 'DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT' specifies that the+-- @stencilTestEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = DynamicState 1000267010+-- | 'DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT' specifies that the+-- @depthBoundsTestEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = DynamicState 1000267009+-- | 'DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT' specifies that the @depthCompareOp@+-- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = DynamicState 1000267008+-- | 'DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT' specifies that the+-- @depthWriteEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = DynamicState 1000267007+-- | 'DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT' specifies that the+-- @depthTestEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = DynamicState 1000267006+-- | 'DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' specifies that the+-- @stride@ state in 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- before any draw call.+pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = DynamicState 1000267005+-- | 'DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' specifies that the @scissorCount@+-- and @pScissors@ state in+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored+-- and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- before any draw call.+pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = DynamicState 1000267004+-- | 'DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' specifies that the+-- @viewportCount@ and @pViewports@ state in+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored+-- and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- before any draw call.+pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = DynamicState 1000267003+-- | 'DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' specifies that the @topology@+-- state in 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'+-- only specifies the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>,+-- and the specific topology order and adjacency /must/ be set dynamically+-- with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+-- before any draw commands.+pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = DynamicState 1000267002+-- | 'DYNAMIC_STATE_FRONT_FACE_EXT' specifies that the @frontFace@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT'+-- before any draw commands.+pattern DYNAMIC_STATE_FRONT_FACE_EXT = DynamicState 1000267001+-- | 'DYNAMIC_STATE_CULL_MODE_EXT' specifies that the @cullMode@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT'+-- before any draw commands.+pattern DYNAMIC_STATE_CULL_MODE_EXT = DynamicState 1000267000 -- | 'DYNAMIC_STATE_LINE_STIPPLE_EXT' specifies that the @lineStippleFactor@ -- and @lineStipplePattern@ state in -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'@@ -188,6 +284,18 @@              DYNAMIC_STATE_STENCIL_COMPARE_MASK,              DYNAMIC_STATE_STENCIL_WRITE_MASK,              DYNAMIC_STATE_STENCIL_REFERENCE,+             DYNAMIC_STATE_STENCIL_OP_EXT,+             DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,+             DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,+             DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,+             DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,+             DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,+             DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,+             DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,+             DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,+             DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,+             DYNAMIC_STATE_FRONT_FACE_EXT,+             DYNAMIC_STATE_CULL_MODE_EXT,              DYNAMIC_STATE_LINE_STIPPLE_EXT,              DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,              DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,@@ -207,6 +315,18 @@     DYNAMIC_STATE_STENCIL_COMPARE_MASK -> showString "DYNAMIC_STATE_STENCIL_COMPARE_MASK"     DYNAMIC_STATE_STENCIL_WRITE_MASK -> showString "DYNAMIC_STATE_STENCIL_WRITE_MASK"     DYNAMIC_STATE_STENCIL_REFERENCE -> showString "DYNAMIC_STATE_STENCIL_REFERENCE"+    DYNAMIC_STATE_STENCIL_OP_EXT -> showString "DYNAMIC_STATE_STENCIL_OP_EXT"+    DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT -> showString "DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT"+    DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT -> showString "DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT"+    DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT -> showString "DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT"+    DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT -> showString "DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT"+    DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT -> showString "DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT"+    DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT -> showString "DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT"+    DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT -> showString "DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT"+    DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT -> showString "DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT"+    DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT -> showString "DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT"+    DYNAMIC_STATE_FRONT_FACE_EXT -> showString "DYNAMIC_STATE_FRONT_FACE_EXT"+    DYNAMIC_STATE_CULL_MODE_EXT -> showString "DYNAMIC_STATE_CULL_MODE_EXT"     DYNAMIC_STATE_LINE_STIPPLE_EXT -> showString "DYNAMIC_STATE_LINE_STIPPLE_EXT"     DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV -> showString "DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV"     DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV -> showString "DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV"@@ -226,6 +346,18 @@                             , ("DYNAMIC_STATE_STENCIL_COMPARE_MASK", pure DYNAMIC_STATE_STENCIL_COMPARE_MASK)                             , ("DYNAMIC_STATE_STENCIL_WRITE_MASK", pure DYNAMIC_STATE_STENCIL_WRITE_MASK)                             , ("DYNAMIC_STATE_STENCIL_REFERENCE", pure DYNAMIC_STATE_STENCIL_REFERENCE)+                            , ("DYNAMIC_STATE_STENCIL_OP_EXT", pure DYNAMIC_STATE_STENCIL_OP_EXT)+                            , ("DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT", pure DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT)+                            , ("DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT", pure DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT)+                            , ("DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT", pure DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT)+                            , ("DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT", pure DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT)+                            , ("DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT", pure DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT)+                            , ("DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT", pure DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT)+                            , ("DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT", pure DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT)+                            , ("DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT", pure DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT)+                            , ("DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT", pure DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT)+                            , ("DYNAMIC_STATE_FRONT_FACE_EXT", pure DYNAMIC_STATE_FRONT_FACE_EXT)+                            , ("DYNAMIC_STATE_CULL_MODE_EXT", pure DYNAMIC_STATE_CULL_MODE_EXT)                             , ("DYNAMIC_STATE_LINE_STIPPLE_EXT", pure DYNAMIC_STATE_LINE_STIPPLE_EXT)                             , ("DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV", pure DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV)                             , ("DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV", pure DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV)
src/Vulkan/Core10/Enums/Format.hs view
@@ -1225,11 +1225,11 @@ -- in the word in bytes 2..3. The horizontal dimensions of the BR plane is -- halved relative to the image dimensions, and each R and B value is -- shared with the G components for which--- \(\lfloor i_G \times 0.5 \rfloor = i_B = i_R\). The location of each--- plane when this image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). The location of each plane when this image is in linear layout+-- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- for the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the BR plane. Images in this format /must/ be defined with a width that -- is a multiple of two.@@ -1240,11 +1240,11 @@ -- 16-bit R component in each 16-bit word of plane 2. The horizontal -- dimension of the R and B plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for--- which \(\lfloor i_G \times 0.5 \rfloor = i_B = i_R\). The location of--- each plane when this image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane,+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). The location of each plane when this image is in linear layout+-- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- for the G plane, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the B plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for@@ -1258,10 +1258,11 @@ -- in the word in bytes 2..3. The horizontal and vertical dimensions of the -- BR plane is halved relative to the image dimensions, and each R and B -- value is shared with the G components for which--- \(\lfloor i_G \times 0.5 \rfloor =--- i_B = i_R\) and \(\lfloor j_G \times 0.5 \rfloor = j_B = j_R\). The--- location of each plane when this image is in linear layout can be--- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). The location of each plane when this image+-- is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for -- the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for@@ -1274,12 +1275,13 @@ -- 16-bit R component in each 16-bit word of plane 2. The horizontal and -- vertical dimensions of the R and B planes are halved relative to the -- image dimensions, and each R and B component is shared with the G--- components for which \(\lfloor i_G \times 0.5--- \rfloor = i_B = i_R\) and \(\lfloor j_G \times 0.5 \rfloor = j_B--- = j_R\). The location of each plane when this image is in linear layout--- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',--- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- for the G plane,+-- components for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). The location of each plane when this image+-- is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the B plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for@@ -1338,11 +1340,11 @@ -- word in bytes 2..3, the bottom 4 bits of each word unused. The -- horizontal dimensions of the BR plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for--- which \(\lfloor i_G \times 0.5 \rfloor = i_B = i_R\). The location of--- each plane when this image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). The location of each plane when this image is in linear layout+-- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- for the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the BR plane. Images in this format /must/ be defined with a width that -- is a multiple of two.@@ -1355,11 +1357,11 @@ -- bottom 4 bits of each word unused. The horizontal dimension of the R and -- B plane is halved relative to the image dimensions, and each R and B -- value is shared with the G components for which--- \(\lfloor i_G \times 0.5 \rfloor = i_B = i_R\). The location of each--- plane when this image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane,+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). The location of each plane when this image is in linear layout+-- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- for the G plane, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the B plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for@@ -1374,10 +1376,11 @@ -- word in bytes 2..3, the bottom 4 bits of each word unused. The -- horizontal and vertical dimensions of the BR plane is halved relative to -- the image dimensions, and each R and B value is shared with the G--- components for which \(\lfloor i_G \times 0.5 \rfloor =--- i_B = i_R\) and \(\lfloor j_G \times 0.5 \rfloor = j_B = j_R\). The--- location of each plane when this image is in linear layout can be--- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- components for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). The location of each plane when this image+-- is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for -- the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for@@ -1392,12 +1395,13 @@ -- bottom 4 bits of each word unused. The horizontal and vertical -- dimensions of the R and B planes are halved relative to the image -- dimensions, and each R and B component is shared with the G components--- for which \(\lfloor i_G \times 0.5--- \rfloor = i_B = i_R\) and \(\lfloor j_G \times 0.5 \rfloor = j_B--- = j_R\). The location of each plane when this image is in linear layout--- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',--- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- for the G plane,+-- for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). The location of each plane when this image+-- is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the B plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for@@ -1478,11 +1482,11 @@ -- word in bytes 2..3, the bottom 6 bits of each word unused. The -- horizontal dimensions of the BR plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for--- which \(\lfloor i_G \times 0.5 \rfloor = i_B = i_R\). The location of--- each plane when this image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). The location of each plane when this image is in linear layout+-- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- for the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the BR plane. Images in this format /must/ be defined with a width that -- is a multiple of two.@@ -1495,11 +1499,11 @@ -- bottom 6 bits of each word unused. The horizontal dimension of the R and -- B plane is halved relative to the image dimensions, and each R and B -- value is shared with the G components for which--- \(\lfloor i_G \times 0.5 \rfloor = i_B = i_R\). The location of each--- plane when this image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane,+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). The location of each plane when this image is in linear layout+-- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- for the G plane, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the B plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for@@ -1514,10 +1518,11 @@ -- word in bytes 2..3, the bottom 6 bits of each word unused. The -- horizontal and vertical dimensions of the BR plane is halved relative to -- the image dimensions, and each R and B value is shared with the G--- components for which \(\lfloor i_G \times 0.5 \rfloor =--- i_B = i_R\) and \(\lfloor j_G \times 0.5 \rfloor = j_B = j_R\). The--- location of each plane when this image is in linear layout can be--- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- components for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). The location of each plane when this image+-- is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for -- the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for@@ -1532,12 +1537,13 @@ -- bottom 6 bits of each word unused. The horizontal and vertical -- dimensions of the R and B planes are halved relative to the image -- dimensions, and each R and B component is shared with the G components--- for which \(\lfloor i_G \times 0.5--- \rfloor = i_B = i_R\) and \(\lfloor j_G \times 0.5 \rfloor = j_B--- = j_R\). The location of each plane when this image is in linear layout--- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',--- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- for the G plane,+-- for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). The location of each plane when this image+-- is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the B plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for@@ -1614,11 +1620,11 @@ -- byte 0 and an 8-bit R component in byte 1. The horizontal dimensions of -- the BR plane is halved relative to the image dimensions, and each R and -- B value is shared with the G components for which--- \(\lfloor i_G \times 0.5 \rfloor = i_B = i_R\). The location of each--- plane when this image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). The location of each plane when this image is in linear layout+-- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- for the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the BR plane. Images in this format /must/ be defined with a width that -- is a multiple of two.@@ -1628,11 +1634,11 @@ -- B component in plane 1, and an 8-bit R component in plane 2. The -- horizontal dimension of the R and B plane is halved relative to the -- image dimensions, and each R and B value is shared with the G components--- for which \(\lfloor i_G \times 0.5 \rfloor = i_B = i_R\). The location--- of each plane when this image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane,+-- for which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). The location of each plane when this image is in linear layout+-- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- for the G plane, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the B plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for@@ -1645,10 +1651,11 @@ -- byte 0 and an 8-bit R component in byte 1. The horizontal and vertical -- dimensions of the BR plane is halved relative to the image dimensions, -- and each R and B value is shared with the G components for which--- \(\lfloor i_G \times 0.5 \rfloor =--- i_B = i_R\) and \(\lfloor j_G \times 0.5 \rfloor = j_B = j_R\). The--- location of each plane when this image is in linear layout can be--- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). The location of each plane when this image+-- is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for -- the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for@@ -1660,12 +1667,13 @@ -- B component in plane 1, and an 8-bit R component in plane 2. The -- horizontal and vertical dimensions of the R and B planes are halved -- relative to the image dimensions, and each R and B component is shared--- with the G components for which \(\lfloor i_G \times 0.5--- \rfloor = i_B = i_R\) and \(\lfloor j_G \times 0.5 \rfloor = j_B--- = j_R\). The location of each plane when this image is in linear layout--- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',--- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- for the G plane,+-- with the G components for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). The location of each plane when this image+-- is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the B plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for
src/Vulkan/Core10/Enums/FrontFace.hs view
@@ -27,7 +27,8 @@ -- -- = See Also ----- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT' newtype FrontFace = FrontFace Int32   deriving newtype (Eq, Ord, Storable, Zero) 
+ src/Vulkan/Core10/Enums/FrontFace.hs-boot view
@@ -0,0 +1,7 @@+{-# language CPP #-}+module Vulkan.Core10.Enums.FrontFace  (FrontFace) where++++data FrontFace+
src/Vulkan/Core10/Enums/PrimitiveTopology.hs view
@@ -63,7 +63,8 @@ -- -- = See Also ----- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' newtype PrimitiveTopology = PrimitiveTopology Int32   deriving newtype (Eq, Ord, Storable, Zero) 
+ src/Vulkan/Core10/Enums/PrimitiveTopology.hs-boot view
@@ -0,0 +1,7 @@+{-# language CPP #-}+module Vulkan.Core10.Enums.PrimitiveTopology  (PrimitiveTopology) where++++data PrimitiveTopology+
src/Vulkan/Core10/Enums/StencilOp.hs view
@@ -33,7 +33,8 @@ -- -- = See Also ----- 'Vulkan.Core10.Pipeline.StencilOpState'+-- 'Vulkan.Core10.Pipeline.StencilOpState',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT' newtype StencilOp = StencilOp Int32   deriving newtype (Eq, Ord, Storable, Zero) 
+ src/Vulkan/Core10/Enums/StencilOp.hs-boot view
@@ -0,0 +1,7 @@+{-# language CPP #-}+module Vulkan.Core10.Enums.StencilOp  (StencilOp) where++++data StencilOp+
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -80,6 +80,7 @@                                                         , STRUCTURE_TYPE_PIPELINE_INFO_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR                                                         , STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT@@ -702,6 +703,7 @@ -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PhysicalDeviceDiscardRectanglePropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.PhysicalDeviceExternalFenceInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo',@@ -1073,6 +1075,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = StructureType 1000269000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR" pattern STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR = StructureType 1000268000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000267000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = StructureType 1000265000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"@@ -1864,6 +1868,7 @@              STRUCTURE_TYPE_PIPELINE_INFO_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,              STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,              STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,@@ -2303,6 +2308,7 @@     STRUCTURE_TYPE_PIPELINE_INFO_KHR -> showString "STRUCTURE_TYPE_PIPELINE_INFO_KHR"     STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"     STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR -> showString "STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR"+    STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"     STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"     STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"     STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT -> showString "STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"@@ -2742,6 +2748,7 @@                             , ("STRUCTURE_TYPE_PIPELINE_INFO_KHR", pure STRUCTURE_TYPE_PIPELINE_INFO_KHR)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR)                             , ("STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR", pure STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR)+                            , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT)                             , ("STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT", pure STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT)
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -313,6 +313,7 @@ -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getPhysicalDevicePresentRectanglesKHR' data Rect2D = Rect2D   { -- | @offset@ is a 'Offset2D' specifying the rectangle offset.@@ -406,6 +407,7 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',@@ -494,6 +496,10 @@ -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD', -- 'Vulkan.Core10.Fence.waitForFences'@@ -624,6 +630,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdBuildAccelerationStructureIndirectKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -118,6 +118,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdBuildAccelerationStructureIndirectKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
src/Vulkan/Core10/Handles.hs view
@@ -474,6 +474,7 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdBuildAccelerationStructureIndirectKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdBuildAccelerationStructureKHR',@@ -537,26 +538,37 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.cmdSetCheckpointNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdSetDeviceMask', -- 'Vulkan.Extensions.VK_KHR_device_group.cmdSetDeviceMaskKHR', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceMarkerINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceOverrideINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceStreamMarkerINTEL',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT', -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV', -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdTraceRaysIndirectKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdTraceRaysKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV',@@ -657,6 +669,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdBuildAccelerationStructureIndirectKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',
src/Vulkan/Core10/Image.hs view
@@ -516,7 +516,7 @@ --     -   If @tiling@ is --         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', then --         @imageCreateFormatFeatures@ is the value of---         'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@linearTilingFeatures@+--         'Vulkan.Core10.DeviceInitialization.FormatProperties'::@linearTilingFeatures@ --         found by calling --         'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties' --         with parameter @format@ equal to 'ImageCreateInfo'::@format@.@@ -527,7 +527,7 @@ --         'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' --         structure with non-zero @externalFormat@, then --         @imageCreateFormatFeatures@ is value of---         'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@optimalTilingFeatures@+--         'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@ --         found by calling --         'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties' --         with parameter @format@ equal to 'ImageCreateInfo'::@format@.@@ -828,12 +828,12 @@ -- -   If @usage@ includes --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT', --     @extent.width@ /must/ be less than or equal to---     \(\lceil{\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\rceil\)+--     \(\left\lceil{\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\right\rceil\) -- -- -   If @usage@ includes --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT', --     @extent.height@ /must/ be less than or equal to---     \(\lceil{\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\rceil\)+--     \(\left\lceil{\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\right\rceil\) -- -- -   If @usage@ includes --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT',
src/Vulkan/Core10/ImageView.hs view
@@ -378,14 +378,6 @@ -- depth\/stencil framebuffer attachment, the @aspectMask@ is ignored and -- both depth and stencil image subresources are used. ----- The 'ComponentMapping' @components@ member describes a remapping from--- components of the image to components of the vector returned by shader--- image instructions. This remapping /must/ be identity for storage image--- descriptors, input attachment descriptors, framebuffer attachments, and--- any 'Vulkan.Core10.Handles.ImageView' used with a combined image sampler--- that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.--- -- When creating a 'Vulkan.Core10.Handles.ImageView', if -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- is enabled in the sampler, the @aspectMask@ of a @subresourceRange@ used@@ -572,6 +564,14 @@ -- dimensions of the selected mip level divided by the compressed texel -- block size and rounded up. --+-- The 'ComponentMapping' @components@ member describes a remapping from+-- components of the image to components of the vector returned by shader+-- image instructions. This remapping /must/ be the identity swizzle for+-- storage image descriptors, input attachment descriptors, framebuffer+-- attachments, and any 'Vulkan.Core10.Handles.ImageView' used with a+-- combined image sampler that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y’CBCR conversion>.+-- -- If the image view is to be used with a sampler which supports -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>, -- an /identically defined object/ of type@@ -893,11 +893,30 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo' --     structure was included in the @pNext@ chain of the --     'Vulkan.Core10.Image.ImageCreateInfo' structure used when creating---     @image@ and the @viewFormatCount@ field of---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+--     @image@ and+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@ --     is not zero then @format@ /must/ be one of the formats in --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@ --+-- -   If a+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+--     structure was included in the @pNext@ chain of the+--     'Vulkan.Core10.Image.ImageCreateInfo' structure used when creating+--     @image@ and+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+--     is not zero then all of the formats in+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@+--     /must/ be compatible with the @format@ as described in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>+--+-- -   If @flags@ dose not contain+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'+--     and the @pNext@ chain include a+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+--     structure then+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+--     /must/ be @0@ or @1@+-- -- -   If @image@ was created with the --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' --     flag, if the @format@ of the @image@ is a@@ -924,8 +943,8 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' --     structure with a @conversion@ value other than --     'Vulkan.Core10.APIConstants.NULL_HANDLE', all members of---     @components@ /must/ have the value---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'+--     @components@ /must/ have the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- -   If @image@ is non-sparse then it /must/ be bound completely and --     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -947,8 +966,8 @@ -- -- -   If @image@ has an --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,---     all members of @components@ /must/ be---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'+--     all members of @components@ /must/ be the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- -   If @image@ was created with @usage@ containing --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV',
src/Vulkan/Core10/Memory.hs view
@@ -180,6 +180,10 @@ --     identify a memory type supporting --     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD' --+-- -   There /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxMemoryAllocationCount@+--     device memory allocations currently allocated on the device.+-- -- == Valid Usage (Implicit) -- -- -   @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
src/Vulkan/Core10/OtherTypes.hs view
@@ -188,52 +188,33 @@ --     @size@ /must/ be less than or equal to than the size of @buffer@ --     minus @offset@ ----- -   If @buffer@ was created with a sharing mode of---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at least---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'------ -   If @buffer@ was created with a sharing mode of---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', and one---     of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED', the other /must/---     be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' or a special---     queue family reserved for external memory ownership transfers, as---     described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers>------ -   If @buffer@ was created with a sharing mode of---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE' and---     @srcQueueFamilyIndex@ is---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED',---     @dstQueueFamilyIndex@ /must/ also be---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+-- -   If @buffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object ----- -   If @buffer@ was created with a sharing mode of---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE' and---     @srcQueueFamilyIndex@ is not---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED', it /must/ be a---     valid queue family or a special queue family reserved for external---     memory transfers, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers>+-- -   If @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at+--     least one /must/ not be a special queue family reserved for external+--     memory ownership transfers, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> -- -- -   If @buffer@ was created with a sharing mode of---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE' and---     @dstQueueFamilyIndex@ is not---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED', it /must/ be a---     valid queue family or a special queue family reserved for external---     memory transfers, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers>+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and+--     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is a special+--     queue family values reserved for external memory transfers, the+--     other /must/ be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- -- -   If @buffer@ was created with a sharing mode of --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED', at least one of---     them /must/ be the same as the family of the queue that will execute---     this barrier+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid+--     queue families, or one of the special queue family values reserved+--     for external memory transfers, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> ----- -   If @buffer@ is non-sparse then it /must/ be bound completely and---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+-- -   If @buffer@ was created with a sharing mode of+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at least+--     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- -- == Valid Usage (Implicit) --@@ -439,8 +420,6 @@ --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' --     set ----- -   --- -- -   If @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer> --     or @oldLayout@ and @newLayout@ define a@@ -860,7 +839,7 @@ --     binding, as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input> ----- -   (@indexSize@ * (@firstIndex@ + @indexCount@) + @offset@) /must/ be+-- -   (@indexSize@ × (@firstIndex@ + @indexCount@) + @offset@) /must/ be --     less than or equal to the size of the bound index buffer, with --     @indexSize@ being based on the type specified by @indexType@, where --     the index buffer, @indexType@, and @offset@ are specified via
src/Vulkan/Core10/Pass.hs view
@@ -1105,25 +1105,33 @@ --     sample count -- -- -   All attachments in @pInputAttachments@ that are not---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have formats---     whose features contain at least one of+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image+--     formats whose+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     contain at least --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --     or --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- -   All attachments in @pColorAttachments@ that are not---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have formats---     whose features contain+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image+--     formats whose+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- -- -   All attachments in @pResolveAttachments@ that are not---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have formats---     whose features contain+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image+--     formats whose+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- -- -   If @pDepthStencilAttachment@ is not @NULL@ and the attachment is not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have a---     format whose features contain+--     image format whose+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- -   If the @VK_AMD_mixed_attachment_samples@ extension is enabled, and@@ -2044,14 +2052,14 @@ --     an element of @pAttachments@ that is referenced by --     @fragmentDensityMapAttachment@ /must/ have a width at least as large --     as---     \(\lceil{\frac{width}{maxFragmentDensityTexelSize_{width}}}\rceil\)+--     \(\left\lceil{\frac{width}{maxFragmentDensityTexelSize_{width}}}\right\rceil\) -- -- -   If @flags@ does not include --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     an element of @pAttachments@ that is referenced by --     @fragmentDensityMapAttachment@ /must/ have a height at least as --     large as---     \(\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\rceil\)+--     \(\left\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\right\rceil\) -- -- -   If @flags@ does not include --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',@@ -2138,7 +2146,7 @@ --     structure included in the @pNext@ chain that is referenced by --     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'::@fragmentDensityMapAttachment@ --     in @renderPass@ /must/ be greater than or equal to---     \(\lceil{\frac{width}{maxFragmentDensityTexelSize_{width}}}\rceil\)+--     \(\left\lceil{\frac{width}{maxFragmentDensityTexelSize_{width}}}\right\rceil\) -- -- -   If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',@@ -2148,7 +2156,7 @@ --     structure included in the @pNext@ chain that is referenced by --     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'::@fragmentDensityMapAttachment@ --     in @renderPass@ /must/ be greater than or equal to---     \(\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\rceil\)+--     \(\left\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\right\rceil\) -- -- -   If multiview is enabled for @renderPass@, and @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',@@ -2213,6 +2221,12 @@ --     structure included in the @pNext@ chain /must/ be equal to the --     corresponding value of 'AttachmentDescription'::@format@ used to --     create @renderPass@+--+-- -   If @flags@ does not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of @pAttachments@ /must/ have been created with+--     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@viewType@ not equal+--     to 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Pipeline.hs view
@@ -650,7 +650,8 @@ -- = See Also -- -- 'PipelineViewportStateCreateInfo',--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport'+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' data Viewport = Viewport   { -- | @x@ and @y@ are the viewport’s upper left corner (x,y).     x :: Float@@ -3568,6 +3569,33 @@ -- -- -   @flags@ /must/ not include --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT',+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     is included in the @pDynamicStates@ array then @viewportCount@+--     /must/ be zero+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     is included in the @pDynamicStates@ array then @scissorCount@ /must/+--     be zero -- -- -   If @flags@ includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
src/Vulkan/Core10/Sampler.hs view
@@ -99,6 +99,12 @@  -- | vkCreateSampler - Create a new sampler object --+-- == Valid Usage+--+-- -   There /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSamplerAllocationCount@+--     VkSampler objects currently created on the device.+-- -- == Valid Usage (Implicit) -- -- -   @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle@@ -305,8 +311,8 @@ -- -   If --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> --     is enabled and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-sampler-ycbcr-conversion-format-features sampler Y′CBCR conversion’s features>---     do not support+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT', --     @minFilter@ and @magFilter@ /must/ be equal to the sampler Y′CBCR --     conversion’s @chromaFilter@@@ -420,6 +426,12 @@ --     a --     'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT' --     /must/ be present in the @pNext@ chain+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-customBorderColors customBorderColors>+--     feature is not enabled, @borderColor@ /must/ not be set to+--     'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_CUSTOM_EXT' or+--     'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT' -- -- -   The maximum number of samplers with custom border colors which /can/ --     be simultaneously created on a device is implementation-dependent
src/Vulkan/Core10/Shader.hs view
@@ -281,10 +281,9 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment> --     appendix ----- -   If @pCode@ declares any of the capabilities listed as /optional/ in---     the+-- -   If @pCode@ declares any of the capabilities listed in the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment>---     appendix, the corresponding feature(s) /must/ be enabled+--     appendix, one of the corresponding requirements /must/ be satisfied -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs view
@@ -370,8 +370,10 @@                                 -> -- | @pData@ is a pointer to memory containing one or more                                    -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo',                                    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', or-                                   -- 'Vulkan.Core10.Handles.BufferView' structures used to write the-                                   -- descriptors.+                                   -- 'Vulkan.Core10.Handles.BufferView' structures or+                                   -- 'Vulkan.Extensions.Handles.AccelerationStructureKHR' or+                                   -- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureNV' handles+                                   -- used to write the descriptors.                                    ("data" ::: Ptr ())                                 -> io () updateDescriptorSetWithTemplate device descriptorSet descriptorUpdateTemplate data' = liftIO $ do
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -378,6 +378,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   @baseGroupX@ /must/ be less than --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0] --
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -112,6 +112,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures)@@ -145,6 +146,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryProperties)@@ -636,6 +638,7 @@   extends _ f     | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan12Features = Just f@@ -695,6 +698,7 @@     | Just Refl <- eqT @e @PhysicalDevice16BitStorageFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f+    | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f     | otherwise = Nothing 
src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs view
@@ -357,51 +357,50 @@ --     a @UNORM@ format) -- -- -   The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-sampler-ycbcr-conversion-format-features sampler Y′CBCR conversion’s features>---     /must/ support+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     of the sampler Y′CBCR conversion /must/ support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' --     or --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' -- -- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-sampler-ycbcr-conversion-format-features sampler Y′CBCR conversion’s features>---     do not support+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT', --     @xChromaOffset@ and @yChromaOffset@ /must/ not be --     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN' -- -- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-sampler-ycbcr-conversion-format-features sampler Y′CBCR conversion’s features>---     do not support+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT', --     @xChromaOffset@ and @yChromaOffset@ /must/ not be --     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT' -- -- -   If the format has a @_422@ or @_420@ suffix, then @components.g@---     /must/ be---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'+--     /must/ be the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- -   If the format has a @_422@ or @_420@ suffix, then @components.a@---     /must/ be---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY',+--     /must/ be the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>, --     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE', or --     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ZERO' -- -- -   If the format has a @_422@ or @_420@ suffix, then @components.r@---     /must/ be---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY' or---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_B'+--     /must/ be the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--     or 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_B' -- -- -   If the format has a @_422@ or @_420@ suffix, then @components.b@---     /must/ be---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY' or---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_R'+--     /must/ be the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--     or 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_R' -- -- -   If the format has a @_422@ or @_420@ suffix, and if either---     @components.r@ or @components.b@ is---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY',---     both values /must/ be---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'+--     @components.r@ or @components.b@ is the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>,+--     both values /must/ be the identity swizzle -- -- -   If @ycbcrModel@ is not --     'Vulkan.Core11.Enums.SamplerYcbcrModelConversion.SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY',@@ -421,15 +420,15 @@ --     equal to 8 -- -- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-sampler-ycbcr-conversion-format-features sampler Y′CBCR conversion’s features>---     do not support+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT' --     @forceExplicitReconstruction@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-sampler-ycbcr-conversion-format-features sampler Y′CBCR conversion’s features>---     do not support+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT', --     @chromaFilter@ /must/ not be --     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'
src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs view
@@ -65,11 +65,12 @@ -- If @filterMinmaxImageComponentMapping@ is -- 'Vulkan.Core10.FundamentalTypes.FALSE' the component mapping of the -- image view used with min\/max filtering /must/ have been created with--- the @r@ component set to--- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'. Only--- the @r@ component of the sampled image value is defined and the other--- component values are undefined. If @filterMinmaxImageComponentMapping@--- is 'Vulkan.Core10.FundamentalTypes.TRUE' this restriction does not apply+-- the @r@ component set to the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>.+-- Only the @r@ component of the sampled image value is defined and the+-- other component values are undefined. If+-- @filterMinmaxImageComponentMapping@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE' this restriction does not apply -- and image component mapping works as normal. -- -- == Valid Usage (Implicit)
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -326,6 +326,36 @@ --     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT' --     set --+-- -   Each element of the @pAttachments@ of @framebuffer@ that is+--     referenced by any element of the @pInputAttachments@ of any element+--     of @pSubpasses@ of @renderPass@ /must/ have+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>+--     contain at least+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--     or+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   Each element of the @pAttachments@ of @framebuffer@ that is+--     referenced by any element of the @pColorAttachments@ of any element+--     of @pSubpasses@ of @renderPass@ /must/ have+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>+--     contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- -   Each element of the @pAttachments@ of @framebuffer@ that is+--     referenced by any element of the @pResolveAttachments@ of any+--     element of @pSubpasses@ of @renderPass@ /must/ have+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>+--     contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- -   Each element of the @pAttachments@ of @framebuffer@ that is+--     referenced by any element of the @pDepthStencilAttachment@ of any+--     element of @pSubpasses@ of @renderPass@ /must/ have+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>+--     contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+-- -- == Valid Usage (Implicit) -- -- -   @commandBuffer@ /must/ be a valid@@ -1104,25 +1134,33 @@ --     sample count -- -- -   All attachments in @pInputAttachments@ that are not---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have formats---     whose features contain at least one of+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image+--     formats whose+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     contain at least --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --     or --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- -   All attachments in @pColorAttachments@ that are not---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have formats---     whose features contain+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image+--     formats whose+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- -- -   All attachments in @pResolveAttachments@ that are not---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have formats---     whose features contain+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image+--     formats whose+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- -- -   If @pDepthStencilAttachment@ is not @NULL@ and the attachment is not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have a---     format whose features contain+--     image format whose+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- -   If the @VK_AMD_mixed_attachment_samples@ extension is enabled, all
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -178,6 +178,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -212,6 +217,59 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set --+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+-- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have --     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers@@ -503,6 +561,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -536,6 +599,59 @@ --     been created with the --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state -- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have
src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs view
@@ -39,22 +39,6 @@ -- created as if the 'ImageFormatListCreateInfo' structure were not -- included in the @pNext@ list of 'Vulkan.Core10.Image.ImageCreateInfo'. ----- == Valid Usage------ -   If @viewFormatCount@ is not @0@, all of the formats in the---     @pViewFormats@ array /must/ be compatible with the format specified---     in the @format@ field of 'Vulkan.Core10.Image.ImageCreateInfo', as---     described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>------ -   If 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ does not contain---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT',---     @viewFormatCount@ /must/ be @0@ or @1@------ -   If @viewFormatCount@ is not @0@,---     'Vulkan.Core10.Image.ImageCreateInfo'::@format@ /must/ be in---     @pViewFormats@--- -- == Valid Usage (Implicit) -- -- -   @sType@ /must/ be
src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs view
@@ -302,6 +302,10 @@ -- -   Each element of @pAttachments@ /must/ have been created with the --     identity swizzle --+-- -   Each element of @pAttachments@ /must/ have been created with+--     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@viewType@ not equal+--     to 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'+-- -- == Valid Usage (Implicit) -- -- -   @sType@ /must/ be
src/Vulkan/Dynamic.hs view
@@ -69,6 +69,7 @@ import {-# SOURCE #-} Vulkan.Core10.CommandPool (CommandPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.CommandPoolResetFlagBits (CommandPoolResetFlags) import {-# SOURCE #-} Vulkan.Core11.Enums.CommandPoolTrimFlags (CommandPoolTrimFlags)+import {-# SOURCE #-} Vulkan.Core10.Enums.CompareOp (CompareOp) import {-# SOURCE #-} Vulkan.Core10.Pipeline (ComputePipelineCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (ConditionalRenderingBeginInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (CooperativeMatrixPropertiesNV)@@ -77,6 +78,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyAccelerationStructureToMemoryInfoKHR) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyMemoryToAccelerationStructureInfoKHR)+import {-# SOURCE #-} Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectNameInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectTagInfoEXT)@@ -151,6 +153,7 @@ import {-# SOURCE #-} Vulkan.Core10.Handles (Framebuffer) import {-# SOURCE #-} Vulkan.Core10.Pass (FramebufferCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (FramebufferMixedSamplesCombinationNV)+import {-# SOURCE #-} Vulkan.Core10.Enums.FrontFace (FrontFace) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsMemoryRequirementsInfoNV) import {-# SOURCE #-} Vulkan.Core10.Pipeline (GraphicsPipelineCreateInfo)@@ -250,6 +253,7 @@ import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (PresentInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (PresentModeKHR)+import {-# SOURCE #-} Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PrivateDataSlotCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.Handles (PrivateDataSlotEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlags)@@ -295,6 +299,7 @@ import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (SparseImageMemoryRequirements) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (SparseImageMemoryRequirements2) import {-# SOURCE #-} Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlags)+import {-# SOURCE #-} Vulkan.Core10.Enums.StencilOp (StencilOp) import {-# SOURCE #-} Vulkan.Extensions.VK_GGP_stream_descriptor_surface (StreamDescriptorSurfaceCreateInfoGGP) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (StridedBufferRegionKHR) import {-# SOURCE #-} Vulkan.Core10.Queue (SubmitInfo)@@ -882,6 +887,18 @@   , pVkGetDeferredOperationMaxConcurrencyKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Word32)   , pVkGetDeferredOperationResultKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result)   , pVkDeferredOperationJoinKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result)+  , pVkCmdSetCullModeEXT :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ())+  , pVkCmdSetFrontFaceEXT :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ())+  , pVkCmdSetPrimitiveTopologyEXT :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ())+  , pVkCmdSetViewportWithCountEXT :: FunPtr (Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ())+  , pVkCmdSetScissorWithCountEXT :: FunPtr (Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ())+  , pVkCmdBindVertexBuffers2EXT :: FunPtr (Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ())+  , pVkCmdSetDepthTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ())+  , pVkCmdSetDepthWriteEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ())+  , pVkCmdSetDepthCompareOpEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ())+  , pVkCmdSetDepthBoundsTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ())+  , pVkCmdSetStencilTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ())+  , pVkCmdSetStencilOpEXT :: FunPtr (Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ())   , pVkCreatePrivateDataSlotEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlotEXT) -> IO Result)   , pVkDestroyPrivateDataSlotEXT :: FunPtr (Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkSetPrivateDataEXT :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result)@@ -928,7 +945,9 @@     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1230,6 +1249,18 @@   vkGetDeferredOperationMaxConcurrencyKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationMaxConcurrencyKHR"#)   vkGetDeferredOperationResultKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationResultKHR"#)   vkDeferredOperationJoinKHR <- getDeviceProcAddr' handle (Ptr "vkDeferredOperationJoinKHR"#)+  vkCmdSetCullModeEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetCullModeEXT"#)+  vkCmdSetFrontFaceEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetFrontFaceEXT"#)+  vkCmdSetPrimitiveTopologyEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPrimitiveTopologyEXT"#)+  vkCmdSetViewportWithCountEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetViewportWithCountEXT"#)+  vkCmdSetScissorWithCountEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetScissorWithCountEXT"#)+  vkCmdBindVertexBuffers2EXT <- getDeviceProcAddr' handle (Ptr "vkCmdBindVertexBuffers2EXT"#)+  vkCmdSetDepthTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthTestEnableEXT"#)+  vkCmdSetDepthWriteEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthWriteEnableEXT"#)+  vkCmdSetDepthCompareOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthCompareOpEXT"#)+  vkCmdSetDepthBoundsTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBoundsTestEnableEXT"#)+  vkCmdSetStencilTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilTestEnableEXT"#)+  vkCmdSetStencilOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilOpEXT"#)   vkCreatePrivateDataSlotEXT <- getDeviceProcAddr' handle (Ptr "vkCreatePrivateDataSlotEXT"#)   vkDestroyPrivateDataSlotEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyPrivateDataSlotEXT"#)   vkSetPrivateDataEXT <- getDeviceProcAddr' handle (Ptr "vkSetPrivateDataEXT"#)@@ -1523,6 +1554,18 @@     (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Word32) vkGetDeferredOperationMaxConcurrencyKHR)     (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkGetDeferredOperationResultKHR)     (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkDeferredOperationJoinKHR)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> CullModeFlags -> IO ()) vkCmdSetCullModeEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> FrontFace -> IO ()) vkCmdSetFrontFaceEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) vkCmdSetPrimitiveTopologyEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) vkCmdSetViewportWithCountEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) vkCmdSetScissorWithCountEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ()) vkCmdBindVertexBuffers2EXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthTestEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ()) vkCmdSetDepthWriteEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ()) vkCmdSetDepthCompareOpEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBoundsTestEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ()) vkCmdSetStencilTestEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ()) vkCmdSetStencilOpEXT)     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlotEXT) -> IO Result) vkCreatePrivateDataSlotEXT)     (castFunPtr @_ @(Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyPrivateDataSlotEXT)     (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result) vkSetPrivateDataEXT)
src/Vulkan/Extensions.hs view
@@ -40,6 +40,7 @@                           , module Vulkan.Extensions.VK_EXT_discard_rectangles                           , module Vulkan.Extensions.VK_EXT_display_control                           , module Vulkan.Extensions.VK_EXT_display_surface_counter+                          , module Vulkan.Extensions.VK_EXT_extended_dynamic_state                           , module Vulkan.Extensions.VK_EXT_external_memory_dma_buf                           , module Vulkan.Extensions.VK_EXT_external_memory_host                           , module Vulkan.Extensions.VK_EXT_filter_cubic@@ -247,6 +248,7 @@ import Vulkan.Extensions.VK_EXT_discard_rectangles import Vulkan.Extensions.VK_EXT_display_control import Vulkan.Extensions.VK_EXT_display_surface_counter+import Vulkan.Extensions.VK_EXT_extended_dynamic_state import Vulkan.Extensions.VK_EXT_external_memory_dma_buf import Vulkan.Extensions.VK_EXT_external_memory_host import Vulkan.Extensions.VK_EXT_filter_cubic
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -221,9 +221,8 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties' -- -- -   If @buffer@ is not @NULL@, it /must/ be a valid Android hardware---     buffer object with @AHardwareBuffer_Desc@::@format@ and---     @AHardwareBuffer_Desc@::@usage@ compatible with Vulkan as described---     in+--     buffer object with @AHardwareBuffer_Desc@::@usage@ compatible with+--     Vulkan as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers> -- -- == Valid Usage (Implicit)@@ -566,8 +565,8 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo' -- with that format. If @format@ is -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', all members of--- @samplerYcbcrConversionComponents@ /must/ be--- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'.+-- @samplerYcbcrConversionComponents@ /must/ be the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>. -- -- Implementations /may/ not always be able to determine the color model, -- numerical range, or chroma offsets of the image contents, so the values
src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs view
@@ -50,35 +50,8 @@ --     'Vulkan.Core10.Enums.Format.FORMAT_R8G8B8A8_UNORM' the image view --     /must/ not include blocks using any of the ASTC HDR modes ----- -   @format@ of the image view /must/ be one of---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_UNORM_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SRGB_BLOCK',---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_UNORM_BLOCK', or---     'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SRGB_BLOCK'+-- -   @format@ of the image view /must/ be one of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats> -- -- If @format@ uses sRGB encoding then the @decodeMode@ has no effect. --
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs view
@@ -57,7 +57,9 @@ --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   If the sampler is used to sample an image view of---     'Vulkan.Core10.Enums.Format.FORMAT_B4G4R4A4_UNORM_PACK16' format+--     'Vulkan.Core10.Enums.Format.FORMAT_B4G4R4A4_UNORM_PACK16',+--     'Vulkan.Core10.Enums.Format.FORMAT_B5G6R5_UNORM_PACK16', or+--     'Vulkan.Core10.Enums.Format.FORMAT_B5G5R5A1_UNORM_PACK16' format --     then @format@ /must/ not be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' --
+ src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs view
@@ -0,0 +1,1229 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_EXT_extended_dynamic_state  ( cmdSetCullModeEXT+                                                        , cmdSetFrontFaceEXT+                                                        , cmdSetPrimitiveTopologyEXT+                                                        , cmdSetViewportWithCountEXT+                                                        , cmdSetScissorWithCountEXT+                                                        , cmdBindVertexBuffers2EXT+                                                        , cmdSetDepthTestEnableEXT+                                                        , cmdSetDepthWriteEnableEXT+                                                        , cmdSetDepthCompareOpEXT+                                                        , cmdSetDepthBoundsTestEnableEXT+                                                        , cmdSetStencilTestEnableEXT+                                                        , cmdSetStencilOpEXT+                                                        , PhysicalDeviceExtendedDynamicStateFeaturesEXT(..)+                                                        , EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION+                                                        , pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION+                                                        , EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME+                                                        , pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME+                                                        ) where++import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import qualified Data.Vector (null)+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.Handles (Buffer)+import Vulkan.Core10.Handles (Buffer(..))+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Core10.Enums.CompareOp (CompareOp)+import Vulkan.Core10.Enums.CompareOp (CompareOp(..))+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlagBits(..))+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)+import Vulkan.Dynamic (DeviceCmds(pVkCmdBindVertexBuffers2EXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCullModeEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthBoundsTestEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthCompareOpEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthTestEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthWriteEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFrontFaceEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveTopologyEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetScissorWithCountEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilOpEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilTestEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportWithCountEXT))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.Core10.Enums.FrontFace (FrontFace)+import Vulkan.Core10.Enums.FrontFace (FrontFace(..))+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology(..))+import Vulkan.Core10.FundamentalTypes (Rect2D)+import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlagBits(..))+import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlags)+import Vulkan.Core10.Enums.StencilOp (StencilOp)+import Vulkan.Core10.Enums.StencilOp (StencilOp(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Core10.Pipeline (Viewport)+import Vulkan.Zero (Zero(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetCullModeEXT+  :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ()) -> Ptr CommandBuffer_T -> CullModeFlags -> IO ()++-- | vkCmdSetCullModeEXT - Set the cull mode property+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @cullMode@ /must/ be a valid combination of+--     'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits' values+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags'+cmdSetCullModeEXT :: forall io+                   . (MonadIO io)+                  => -- | @commandBuffer@ is the command buffer into which the command will be+                     -- recorded.+                     CommandBuffer+                  -> -- | @cullMode@ specifies the cull mode property to use for drawing.+                     CullModeFlags+                  -> io ()+cmdSetCullModeEXT commandBuffer cullMode = liftIO $ do+  let vkCmdSetCullModeEXTPtr = pVkCmdSetCullModeEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetCullModeEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCullModeEXT is null" Nothing Nothing+  let vkCmdSetCullModeEXT' = mkVkCmdSetCullModeEXT vkCmdSetCullModeEXTPtr+  vkCmdSetCullModeEXT' (commandBufferHandle (commandBuffer)) (cullMode)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetFrontFaceEXT+  :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ()) -> Ptr CommandBuffer_T -> FrontFace -> IO ()++-- | vkCmdSetFrontFaceEXT - Set the front face property+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @frontFace@ /must/ be a valid+--     'Vulkan.Core10.Enums.FrontFace.FrontFace' value+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.FrontFace.FrontFace'+cmdSetFrontFaceEXT :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command will be+                      -- recorded.+                      CommandBuffer+                   -> -- | @frontFace@ specifies the front face property to use for drawing.+                      FrontFace+                   -> io ()+cmdSetFrontFaceEXT commandBuffer frontFace = liftIO $ do+  let vkCmdSetFrontFaceEXTPtr = pVkCmdSetFrontFaceEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetFrontFaceEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetFrontFaceEXT is null" Nothing Nothing+  let vkCmdSetFrontFaceEXT' = mkVkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXTPtr+  vkCmdSetFrontFaceEXT' (commandBufferHandle (commandBuffer)) (frontFace)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetPrimitiveTopologyEXT+  :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) -> Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()++-- | vkCmdSetPrimitiveTopologyEXT - Set the primitive topology state+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @primitiveTopology@ /must/ be a valid+--     'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' value+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology'+cmdSetPrimitiveTopologyEXT :: forall io+                            . (MonadIO io)+                           => -- | @commandBuffer@ is the command buffer into which the command will be+                              -- recorded.+                              CommandBuffer+                           -> -- No documentation found for Nested "vkCmdSetPrimitiveTopologyEXT" "primitiveTopology"+                              PrimitiveTopology+                           -> io ()+cmdSetPrimitiveTopologyEXT commandBuffer primitiveTopology = liftIO $ do+  let vkCmdSetPrimitiveTopologyEXTPtr = pVkCmdSetPrimitiveTopologyEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetPrimitiveTopologyEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveTopologyEXT is null" Nothing Nothing+  let vkCmdSetPrimitiveTopologyEXT' = mkVkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXTPtr+  vkCmdSetPrimitiveTopologyEXT' (commandBufferHandle (commandBuffer)) (primitiveTopology)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetViewportWithCountEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()++-- | vkCmdSetViewportWithCountEXT - Set the viewport count and viewports+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- -   @viewportCount@ /must/ be between @1@ and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+--     inclusive+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     feature is not enabled, @viewportCount@ /must/ be @1@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @pViewports@ /must/ be a valid pointer to an array of+--     @viewportCount@ valid 'Vulkan.Core10.Pipeline.Viewport' structures+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   @viewportCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'+cmdSetViewportWithCountEXT :: forall io+                            . (MonadIO io)+                           => -- | @commandBuffer@ is the command buffer into which the command will be+                              -- recorded.+                              CommandBuffer+                           -> -- | @pViewports@ specifies the viewports to use for drawing.+                              ("viewports" ::: Vector Viewport)+                           -> io ()+cmdSetViewportWithCountEXT commandBuffer viewports = liftIO . evalContT $ do+  let vkCmdSetViewportWithCountEXTPtr = pVkCmdSetViewportWithCountEXT (deviceCmds (commandBuffer :: CommandBuffer))+  lift $ unless (vkCmdSetViewportWithCountEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewportWithCountEXT is null" Nothing Nothing+  let vkCmdSetViewportWithCountEXT' = mkVkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXTPtr+  pPViewports <- ContT $ allocaBytesAligned @Viewport ((Data.Vector.length (viewports)) * 24) 4+  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e) . ($ ())) (viewports)+  lift $ vkCmdSetViewportWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetScissorWithCountEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()++-- | vkCmdSetScissorWithCountEXT - Set the scissor count and scissors+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- -   @scissorCount@ /must/ be between @1@ and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+--     inclusive+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     feature is not enabled, @scissorCount@ /must/ be @1@+--+-- -   The @x@ and @y@ members of @offset@ member of any element of+--     @pScissors@ /must/ be greater than or equal to @0@+--+-- -   Evaluation of (@offset.x@ + @extent.width@) /must/ not cause a+--     signed integer addition overflow for any element of @pScissors@+--+-- -   Evaluation of (@offset.y@ + @extent.height@) /must/ not cause a+--     signed integer addition overflow for any element of @pScissors@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @pScissors@ /must/ be a valid pointer to an array of @scissorCount@+--     'Vulkan.Core10.FundamentalTypes.Rect2D' structures+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   @scissorCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.Rect2D'+cmdSetScissorWithCountEXT :: forall io+                           . (MonadIO io)+                          => -- | @commandBuffer@ is the command buffer into which the command will be+                             -- recorded.+                             CommandBuffer+                          -> -- | @pScissors@ specifies the scissors to use for drawing.+                             ("scissors" ::: Vector Rect2D)+                          -> io ()+cmdSetScissorWithCountEXT commandBuffer scissors = liftIO . evalContT $ do+  let vkCmdSetScissorWithCountEXTPtr = pVkCmdSetScissorWithCountEXT (deviceCmds (commandBuffer :: CommandBuffer))+  lift $ unless (vkCmdSetScissorWithCountEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissorWithCountEXT is null" Nothing Nothing+  let vkCmdSetScissorWithCountEXT' = mkVkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXTPtr+  pPScissors <- ContT $ allocaBytesAligned @Rect2D ((Data.Vector.length (scissors)) * 16) 4+  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e) . ($ ())) (scissors)+  lift $ vkCmdSetScissorWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBindVertexBuffers2EXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()++-- | vkCmdBindVertexBuffers2EXT - Bind vertex buffers to a command buffer+--+-- = Description+--+-- The values taken from elements i of @pBuffers@ and @pOffsets@ replace+-- the current state for the vertex input binding @firstBinding@ + i, for i+-- in [0, @bindingCount@). The vertex input binding is updated to start at+-- the offset indicated by @pOffsets@[i] from the start of the buffer+-- @pBuffers@[i] If @pSizes@ is not @NULL@ then @pSizes@[i] specifies the+-- bound size of the corresponding vertex buffer. All vertex input+-- attributes that use each of these bindings will use these updated+-- addresses in their address calculations for subsequent draw commands.+--+-- If the bound pipeline state object was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- dynamic state enabled then @pStrides@[i] specifies the distance in bytes+-- between two consecutive elements within the corresponding buffer. In+-- this case the+-- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@stride@ state+-- from the pipeline state object is ignored.+--+-- == Valid Usage+--+-- -   @firstBinding@ /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   The sum of @firstBinding@ and @bindingCount@ /must/ be less than or+--     equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   All elements of @pOffsets@ /must/ be less than the size of the+--     corresponding element in @pBuffers@+--+-- -   If @pSizes@ is not @NULL@, all elements of @pOffsets@ plus @pSizes@+--     /must/ be less than or equal to the size of the corresponding+--     element in @pBuffers@+--+-- -   All elements of @pBuffers@ /must/ have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'+--     flag+--+-- -   Each element of @pBuffers@ that is non-sparse /must/ be bound+--     completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     feature is not enabled, all elements of @pBuffers@ /must/ not be+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   If an element of @pBuffers@ is+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding+--     element of @pOffsets@ /must/ be zero+--+-- -   If the bound pipeline state object was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled then @pStrides@ /must/ not be @NULL@,+--     otherwise @pStrides@ /must/ be @NULL@+--+-- -   If @pStrides@ is not @NULL@ each element of @pStrides@ /must/ be+--     less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@+--+-- -   If @pStrides@ is not @NULL@ each element of @pStrides@ /must/ be+--     greater than or equal to the maximum extent of of all vertex input+--     attributes fetched from the corresponding binding, where the extent+--     is calculated as the VkVertexInputAttributeDescription::offset plus+--     VkVertexInputAttributeDescription::format size+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @pBuffers@ /must/ be a valid pointer to an array of @bindingCount@+--     valid 'Vulkan.Core10.Handles.Buffer' handles+--+-- -   @pOffsets@ /must/ be a valid pointer to an array of @bindingCount@+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- -   If @pSizes@ is not @NULL@, @pSizes@ /must/ be a valid pointer to an+--     array of @bindingCount@ 'Vulkan.Core10.FundamentalTypes.DeviceSize'+--     values+--+-- -   If @pStrides@ is not @NULL@, @pStrides@ /must/ be a valid pointer to+--     an array of @bindingCount@+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   If any of @pSizes@, or @pStrides@ are not @NULL@, @bindingCount@+--     /must/ be greater than @0@+--+-- -   Both of @commandBuffer@, and the elements of @pBuffers@ /must/ have+--     been created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdBindVertexBuffers2EXT :: forall io+                          . (MonadIO io)+                         => -- | @commandBuffer@ is the command buffer into which the command is+                            -- recorded.+                            CommandBuffer+                         -> -- | @firstBinding@ is the index of the first vertex input binding whose+                            -- state is updated by the command.+                            ("firstBinding" ::: Word32)+                         -> -- | @pBuffers@ is a pointer to an array of buffer handles.+                            ("buffers" ::: Vector Buffer)+                         -> -- | @pOffsets@ is a pointer to an array of buffer offsets.+                            ("offsets" ::: Vector DeviceSize)+                         -> -- | @pSizes@ is optional, and when not @NULL@ is a pointer to an array of+                            -- buffer sizes.+                            ("sizes" ::: Vector DeviceSize)+                         -> -- | @pStrides@ is optional, and when not @NULL@ is a pointer to an array of+                            -- buffer strides.+                            ("strides" ::: Vector DeviceSize)+                         -> io ()+cmdBindVertexBuffers2EXT commandBuffer firstBinding buffers offsets sizes strides = liftIO . evalContT $ do+  let vkCmdBindVertexBuffers2EXTPtr = pVkCmdBindVertexBuffers2EXT (deviceCmds (commandBuffer :: CommandBuffer))+  lift $ unless (vkCmdBindVertexBuffers2EXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers2EXT is null" Nothing Nothing+  let vkCmdBindVertexBuffers2EXT' = mkVkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXTPtr+  let pBuffersLength = Data.Vector.length $ (buffers)+  lift $ unless ((Data.Vector.length $ (offsets)) == pBuffersLength) $+    throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBuffers must have the same length" Nothing Nothing+  let pSizesLength = Data.Vector.length $ (sizes)+  lift $ unless (fromIntegral pSizesLength == pBuffersLength || pSizesLength == 0) $+    throwIO $ IOError Nothing InvalidArgument "" "pSizes and pBuffers must have the same length" Nothing Nothing+  let pStridesLength = Data.Vector.length $ (strides)+  lift $ unless (fromIntegral pStridesLength == pBuffersLength || pStridesLength == 0) $+    throwIO $ IOError Nothing InvalidArgument "" "pStrides and pBuffers must have the same length" Nothing Nothing+  pPBuffers <- ContT $ allocaBytesAligned @Buffer ((Data.Vector.length (buffers)) * 8) 8+  lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers)+  pPOffsets <- ContT $ allocaBytesAligned @DeviceSize ((Data.Vector.length (offsets)) * 8) 8+  lift $ Data.Vector.imapM_ (\i e -> poke (pPOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) (offsets)+  pSizes <- if Data.Vector.null (sizes)+    then pure nullPtr+    else do+      pPSizes <- ContT $ allocaBytesAligned @DeviceSize (((Data.Vector.length (sizes))) * 8) 8+      lift $ Data.Vector.imapM_ (\i e -> poke (pPSizes `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((sizes))+      pure $ pPSizes+  pStrides <- if Data.Vector.null (strides)+    then pure nullPtr+    else do+      pPStrides <- ContT $ allocaBytesAligned @DeviceSize (((Data.Vector.length (strides))) * 8) 8+      lift $ Data.Vector.imapM_ (\i e -> poke (pPStrides `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((strides))+      pure $ pPStrides+  lift $ vkCmdBindVertexBuffers2EXT' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes pStrides+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthTestEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthTestEnableEXT - Set the depth test enable for a command+-- buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthTestEnableEXT :: forall io+                          . (MonadIO io)+                         => -- | @commandBuffer@ is the command buffer into which the command will be+                            -- recorded.+                            CommandBuffer+                         -> -- | @depthTestEnable@ specifies if the depth test is enabled.+                            ("depthTestEnable" ::: Bool)+                         -> io ()+cmdSetDepthTestEnableEXT commandBuffer depthTestEnable = liftIO $ do+  let vkCmdSetDepthTestEnableEXTPtr = pVkCmdSetDepthTestEnableEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetDepthTestEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthTestEnableEXT is null" Nothing Nothing+  let vkCmdSetDepthTestEnableEXT' = mkVkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXTPtr+  vkCmdSetDepthTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthTestEnable))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthWriteEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthWriteEnableEXT - Set the depth write enable for the command+-- buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthWriteEnableEXT :: forall io+                           . (MonadIO io)+                          => -- | @commandBuffer@ is the command buffer into which the command will be+                             -- recorded.+                             CommandBuffer+                          -> -- | @depthWriteEnable@ specifies if depth writes are enabled.+                             ("depthWriteEnable" ::: Bool)+                          -> io ()+cmdSetDepthWriteEnableEXT commandBuffer depthWriteEnable = liftIO $ do+  let vkCmdSetDepthWriteEnableEXTPtr = pVkCmdSetDepthWriteEnableEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetDepthWriteEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthWriteEnableEXT is null" Nothing Nothing+  let vkCmdSetDepthWriteEnableEXT' = mkVkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXTPtr+  vkCmdSetDepthWriteEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthWriteEnable))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthCompareOpEXT+  :: FunPtr (Ptr CommandBuffer_T -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> CompareOp -> IO ()++-- | vkCmdSetDepthCompareOpEXT - Set the depth comparison operator for the+-- command buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @depthCompareOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.CompareOp.CompareOp' value+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp'+cmdSetDepthCompareOpEXT :: forall io+                         . (MonadIO io)+                        => -- | @commandBuffer@ is the command buffer into which the command will be+                           -- recorded.+                           CommandBuffer+                        -> -- | @depthCompareOp@ specifies the depth comparison operator.+                           ("depthCompareOp" ::: CompareOp)+                        -> io ()+cmdSetDepthCompareOpEXT commandBuffer depthCompareOp = liftIO $ do+  let vkCmdSetDepthCompareOpEXTPtr = pVkCmdSetDepthCompareOpEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetDepthCompareOpEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthCompareOpEXT is null" Nothing Nothing+  let vkCmdSetDepthCompareOpEXT' = mkVkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXTPtr+  vkCmdSetDepthCompareOpEXT' (commandBufferHandle (commandBuffer)) (depthCompareOp)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthBoundsTestEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthBoundsTestEnableEXT - Set the depth bounds test enable for+-- a command buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBoundsTestEnableEXT :: forall io+                                . (MonadIO io)+                               => -- | @commandBuffer@ is the command buffer into which the command will be+                                  -- recorded.+                                  CommandBuffer+                               -> -- | @depthBoundsTestEnable@ specifies if the depth bounds test is enabled.+                                  ("depthBoundsTestEnable" ::: Bool)+                               -> io ()+cmdSetDepthBoundsTestEnableEXT commandBuffer depthBoundsTestEnable = liftIO $ do+  let vkCmdSetDepthBoundsTestEnableEXTPtr = pVkCmdSetDepthBoundsTestEnableEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetDepthBoundsTestEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBoundsTestEnableEXT is null" Nothing Nothing+  let vkCmdSetDepthBoundsTestEnableEXT' = mkVkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXTPtr+  vkCmdSetDepthBoundsTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBoundsTestEnable))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetStencilTestEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetStencilTestEnableEXT - Set the stencil test enable for the+-- command buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetStencilTestEnableEXT :: forall io+                            . (MonadIO io)+                           => -- | @commandBuffer@ is the command buffer into which the command will be+                              -- recorded.+                              CommandBuffer+                           -> -- | @stencilTestEnable@ specifies if the stencil test is enabled.+                              ("stencilTestEnable" ::: Bool)+                           -> io ()+cmdSetStencilTestEnableEXT commandBuffer stencilTestEnable = liftIO $ do+  let vkCmdSetStencilTestEnableEXTPtr = pVkCmdSetStencilTestEnableEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetStencilTestEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilTestEnableEXT is null" Nothing Nothing+  let vkCmdSetStencilTestEnableEXT' = mkVkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXTPtr+  vkCmdSetStencilTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (stencilTestEnable))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetStencilOpEXT+  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()++-- | vkCmdSetStencilOpEXT - Set the stencil operation for the command buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @faceMask@ /must/ be a valid combination of+--     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values+--+-- -   @faceMask@ /must/ not be @0@+--+-- -   @failOp@ /must/ be a valid 'Vulkan.Core10.Enums.StencilOp.StencilOp'+--     value+--+-- -   @passOp@ /must/ be a valid 'Vulkan.Core10.Enums.StencilOp.StencilOp'+--     value+--+-- -   @depthFailOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.StencilOp.StencilOp' value+--+-- -   @compareOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.CompareOp.CompareOp' value+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp',+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags',+-- 'Vulkan.Core10.Enums.StencilOp.StencilOp'+cmdSetStencilOpEXT :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command will be+                      -- recorded.+                      CommandBuffer+                   -> -- | @faceMask@ is a bitmask of VkStencilFaceFlagBits specifying the set of+                      -- stencil state for which to update the stencil operation.+                      ("faceMask" ::: StencilFaceFlags)+                   -> -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying+                      -- the action performed on samples that fail the stencil test.+                      ("failOp" ::: StencilOp)+                   -> -- | @passOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying+                      -- the action performed on samples that pass both the depth and stencil+                      -- tests.+                      ("passOp" ::: StencilOp)+                   -> -- | @depthFailOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+                      -- specifying the action performed on samples that pass the stencil test+                      -- and fail the depth test.+                      ("depthFailOp" ::: StencilOp)+                   -> -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+                      -- specifying the comparison operator used in the stencil test.+                      CompareOp+                   -> io ()+cmdSetStencilOpEXT commandBuffer faceMask failOp passOp depthFailOp compareOp = liftIO $ do+  let vkCmdSetStencilOpEXTPtr = pVkCmdSetStencilOpEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetStencilOpEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilOpEXT is null" Nothing Nothing+  let vkCmdSetStencilOpEXT' = mkVkCmdSetStencilOpEXT vkCmdSetStencilOpEXTPtr+  vkCmdSetStencilOpEXT' (commandBufferHandle (commandBuffer)) (faceMask) (failOp) (passOp) (depthFailOp) (compareOp)+  pure $ ()+++-- | VkPhysicalDeviceExtendedDynamicStateFeaturesEXT - Structure describing+-- what extended dynamic state can be used+--+-- = Members+--+-- The members of the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' structure is+-- included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- it is filled with values indicating whether the feature is supported.+-- 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable+-- features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceExtendedDynamicStateFeaturesEXT = PhysicalDeviceExtendedDynamicStateFeaturesEXT+  { -- | @extendedDynamicState@ indicates that the implementation supports the+    -- following dynamic states:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'+    extendedDynamicState :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceExtendedDynamicStateFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceExtendedDynamicStateFeaturesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicStateFeaturesEXT where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceExtendedDynamicStateFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceExtendedDynamicStateFeaturesEXT where+  peekCStruct p = do+    extendedDynamicState <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceExtendedDynamicStateFeaturesEXT+             (bool32ToBool extendedDynamicState)++instance Storable PhysicalDeviceExtendedDynamicStateFeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceExtendedDynamicStateFeaturesEXT where+  zero = PhysicalDeviceExtendedDynamicStateFeaturesEXT+           zero+++type EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION"+pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION = 1+++type EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_extended_dynamic_state"++-- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME"+pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_extended_dynamic_state"+
+ src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot view
@@ -0,0 +1,13 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_EXT_extended_dynamic_state  (PhysicalDeviceExtendedDynamicStateFeaturesEXT) where++import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+data PhysicalDeviceExtendedDynamicStateFeaturesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicStateFeaturesEXT+instance Show PhysicalDeviceExtendedDynamicStateFeaturesEXT++instance FromCStruct PhysicalDeviceExtendedDynamicStateFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -273,7 +273,7 @@ -- @sampleLocationsPerPixel@ number of sample locations for each pixel in -- the grid of the size specified in @sampleLocationGridSize@. The sample -- location for sample i at the pixel grid location (x,y) is taken from--- @pSampleLocations@[(x + y * @sampleLocationGridSize.width@) *+-- @pSampleLocations@[(x + y × @sampleLocationGridSize.width@) × -- @sampleLocationsPerPixel@ + i]. -- -- If the render pass has a fragment density map, the implementation will
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -992,6 +992,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -1025,6 +1030,59 @@ --     been created with the --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state -- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have
src/Vulkan/Extensions/VK_KHR_ray_tracing.hs view
@@ -1441,6 +1441,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   Any shader group handle referenced by this call /must/ have been --     queried from the currently bound ray tracing shader pipeline --@@ -2123,6 +2128,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   Any shader group handle referenced by this call /must/ have been --     queried from the currently bound ray tracing shader pipeline --@@ -4820,7 +4830,7 @@ --     geometry doesn’t use indices, the offset @primitiveOffset@ from --     'AccelerationStructureGeometryTrianglesDataKHR'::@vertexData@ /must/ --     be a multiple of the component size of---     'AccelerationStructureGeometryTrianglesDataKHR'::@vertexType@+--     'AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@ -- -- -   For geometries of type 'GEOMETRY_TYPE_TRIANGLES_KHR', the offset --     @transformOffset@ from
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -1414,6 +1414,23 @@ --     structure with a @viewFormatCount@ greater than zero and --     @pViewFormats@ /must/ have an element equal to @imageFormat@ --+-- -   If a+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+--     structure was included in the @pNext@ chain and+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+--     is not zero then all of the formats in+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@+--     /must/ be compatible with the @format@ as described in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>+--+-- -   If @flags@ dose not contain+--     'SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR' and the @pNext@ chain+--     include a+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+--     structure then+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+--     /must/ be @0@ or @1@+-- -- -   If @flags@ contains 'SWAPCHAIN_CREATE_PROTECTED_BIT_KHR', then --     'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR'::@supportsProtected@ --     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' in the
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -317,6 +317,11 @@ --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command /must/ not be a protected resource --+-- -   [[VUID-{refpage}-None-04115]] If a 'Vulkan.Core10.Handles.ImageView'+--     is accessed using @OpImageWrite@ as a result of this command, then+--     the @Type@ of the @Texel@ operand of that instruction /must/ have at+--     least as many components as the image view’s format.+-- -- -   [[VUID-{refpage}-renderPass-02684]] The current render pass /must/ --     be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -353,6 +358,63 @@ --     been created with the --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set+--+-- -   [[VUID-{refpage}-viewportCount-03417]] If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   [[VUID-{refpage}-scissorCount-03418]] If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   [[VUID-{refpage}-viewportCount-03419]] If the bound graphics+--     pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   [[VUID-{refpage}-primitiveTopology-03420]] If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state -- -- -   [[VUID-{refpage}-None-04007]] All vertex input bindings accessed via --     vertex input variables declared in the vertex shader entry point’s
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -208,6 +208,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -242,6 +247,59 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set --+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+-- -- -   @taskCount@ /must/ be less than or equal to --     'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@ --@@ -457,6 +515,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -491,6 +554,59 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set --+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+-- -- -   If @buffer@ is non-sparse then it /must/ be bound completely and --     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object --@@ -740,6 +856,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the@@ -773,6 +894,59 @@ --     been created with the --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, then then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   If the bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic states enabled then both+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--+-- -   If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state -- -- -   If @buffer@ is non-sparse then it /must/ be bound completely and --     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -925,6 +925,11 @@ --     pipeline bind point used by this command /must/ not be a protected --     resource --+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format.+-- -- -   Any shader group handle referenced by this call /must/ have been --     queried from the currently bound ray tracing shader pipeline --
src/Vulkan/Version.hs view
@@ -14,11 +14,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 142+pattern HEADER_VERSION = 145   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 142+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 145   pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 3c77f5fce0e982c3b81e2fe5ff6a0d28fbee1c6c2a168885b723ceda541b2b9a+-- hash: 4abff3b0c093724ec1d3e755d652d1c7693cd3efe7d03bcbc523e4dba41414ca  name:           vulkan-version:        3.4+version:        3.5 synopsis:       Bindings to the Vulkan graphics API. category:       Graphics homepage:       https://github.com/expipiplus1/vulkan#readme@@ -290,6 +290,7 @@       Vulkan.Extensions.VK_EXT_discard_rectangles       Vulkan.Extensions.VK_EXT_display_control       Vulkan.Extensions.VK_EXT_display_surface_counter+      Vulkan.Extensions.VK_EXT_extended_dynamic_state       Vulkan.Extensions.VK_EXT_external_memory_dma_buf       Vulkan.Extensions.VK_EXT_external_memory_host       Vulkan.Extensions.VK_EXT_filter_cubic