packages feed

vulkan 3.24.1 → 3.24.2

raw patch · 37 files changed

+2521/−90 lines, 37 files

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.24.2] - 2022-12-27+- Bump API version to v1.3.237+ ## [3.24.1] - 2022-12-27 - Bump API version to v1.3.236 
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.24.1"+version: "3.24.2" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan/CStruct/Extends.hs view
@@ -628,6 +628,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (PhysicalDeviceSurfaceInfo2KHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (PhysicalDeviceSwapchainMaintenance1FeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties)@@ -732,6 +733,7 @@ import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Rect2D) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (RectLayerKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (RefreshCycleDurationGOOGLE)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (ReleaseSwapchainImagesInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (RenderPassAttachmentBeginInfo) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (RenderPassCreateInfo)@@ -819,11 +821,18 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (SurfaceFormatKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveWin32InfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_surface_maintenance1 (SurfacePresentModeCompatibilityEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_surface_maintenance1 (SurfacePresentModeEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_surface_maintenance1 (SurfacePresentScalingCapabilitiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface_protected_capabilities (SurfaceProtectedCapabilitiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (SwapchainCounterCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SwapchainPresentBarrierCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentFenceInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentModeInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentModesCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentScalingCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (SysmemColorSpaceFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_texture_gather_bias_lod (TextureLODGatherFormatPropertiesAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (TilePropertiesQCOM)@@ -1155,6 +1164,7 @@   Extends DeviceCreateInfo PhysicalDeviceOpticalFlowFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceFaultFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceShaderCoreBuiltinsFeaturesARM = ()+  Extends DeviceCreateInfo PhysicalDeviceSwapchainMaintenance1FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceRayTracingInvocationReorderFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = ()   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = ()@@ -1387,6 +1397,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceOpticalFlowFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceFaultFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderCoreBuiltinsFeaturesARM = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceSwapchainMaintenance1FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingInvocationReorderFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()@@ -1468,6 +1479,7 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingInvocationReorderPropertiesNV = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()+  Extends PhysicalDeviceSurfaceInfo2KHR SurfacePresentModeEXT = ()   Extends PipelineColorBlendStateCreateInfo PipelineColorBlendAdvancedStateCreateInfoEXT = ()   Extends PipelineColorBlendStateCreateInfo PipelineColorWriteCreateInfoEXT = ()   Extends PipelineMultisampleStateCreateInfo PipelineCoverageToColorStateCreateInfoNV = ()@@ -1500,6 +1512,8 @@   Extends PresentInfoKHR PresentIdKHR = ()   Extends PresentInfoKHR PresentTimesInfoGOOGLE = ()   Extends PresentInfoKHR PresentFrameTokenGGP = ()+  Extends PresentInfoKHR SwapchainPresentFenceInfoEXT = ()+  Extends PresentInfoKHR SwapchainPresentModeInfoEXT = ()   Extends QueryPoolCreateInfo QueryPoolPerformanceCreateInfoKHR = ()   Extends QueryPoolCreateInfo QueryPoolPerformanceQueryCreateInfoINTEL = ()   Extends QueueFamilyProperties2 QueueFamilyGlobalPriorityPropertiesKHR = ()@@ -1559,6 +1573,8 @@   Extends SurfaceCapabilities2KHR SurfaceProtectedCapabilitiesKHR = ()   Extends SurfaceCapabilities2KHR SurfaceCapabilitiesFullScreenExclusiveEXT = ()   Extends SurfaceCapabilities2KHR SurfaceCapabilitiesPresentBarrierNV = ()+  Extends SurfaceCapabilities2KHR SurfacePresentScalingCapabilitiesEXT = ()+  Extends SurfaceCapabilities2KHR SurfacePresentModeCompatibilityEXT = ()   Extends SurfaceFormat2KHR ImageCompressionPropertiesEXT = ()   Extends SwapchainCreateInfoKHR SwapchainCounterCreateInfoEXT = ()   Extends SwapchainCreateInfoKHR DeviceGroupSwapchainCreateInfoKHR = ()@@ -1568,6 +1584,8 @@   Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveWin32InfoEXT = ()   Extends SwapchainCreateInfoKHR SwapchainPresentBarrierCreateInfoNV = ()   Extends SwapchainCreateInfoKHR ImageCompressionControlEXT = ()+  Extends SwapchainCreateInfoKHR SwapchainPresentModesCreateInfoEXT = ()+  Extends SwapchainCreateInfoKHR SwapchainPresentScalingCreateInfoEXT = ()   Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlock = ()   Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureKHR = ()   Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureNV = ()@@ -2084,6 +2102,14 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT -> go @PhysicalDeviceFaultFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM -> go @PhysicalDeviceShaderCoreBuiltinsPropertiesARM   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM -> go @PhysicalDeviceShaderCoreBuiltinsFeaturesARM+  STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT -> go @SurfacePresentModeEXT+  STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT -> go @SurfacePresentScalingCapabilitiesEXT+  STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT -> go @SurfacePresentModeCompatibilityEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT -> go @PhysicalDeviceSwapchainMaintenance1FeaturesEXT+  STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT -> go @SwapchainPresentFenceInfoEXT+  STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT -> go @SwapchainPresentModesCreateInfoEXT+  STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT -> go @SwapchainPresentModeInfoEXT+  STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT -> go @SwapchainPresentScalingCreateInfoEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV -> go @PhysicalDeviceRayTracingInvocationReorderFeaturesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV -> go @PhysicalDeviceRayTracingInvocationReorderPropertiesNV   STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG -> go @DirectDriverLoadingListLUNARG@@ -2552,6 +2578,14 @@ {-# complete (::&) :: PhysicalDeviceFaultFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceShaderCoreBuiltinsPropertiesARM #-} {-# complete (::&) :: PhysicalDeviceShaderCoreBuiltinsFeaturesARM #-}+{-# complete (::&) :: SurfacePresentModeEXT #-}+{-# complete (::&) :: SurfacePresentScalingCapabilitiesEXT #-}+{-# complete (::&) :: SurfacePresentModeCompatibilityEXT #-}+{-# complete (::&) :: PhysicalDeviceSwapchainMaintenance1FeaturesEXT #-}+{-# complete (::&) :: SwapchainPresentFenceInfoEXT #-}+{-# complete (::&) :: SwapchainPresentModesCreateInfoEXT #-}+{-# complete (::&) :: SwapchainPresentModeInfoEXT #-}+{-# complete (::&) :: SwapchainPresentScalingCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceRayTracingInvocationReorderFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceRayTracingInvocationReorderPropertiesNV #-} {-# complete (::&) :: DirectDriverLoadingListLUNARG #-}
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -1208,10 +1208,11 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' set -- in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@writeMask@--- value used to create the currently active pipeline, for both front and--- back faces.+-- Otherwise, this state is specified by the @writeMask@ value used to+-- create the currently active pipeline, for both+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@front@+-- and 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@back@+-- faces. -- -- == Valid Usage (Implicit) --@@ -2401,7 +2402,8 @@ -- -- -   #VUID-vkCmdDraw-None-06887# If the current render pass instance uses --     a depth\/stencil attachment with a read-only layout for the stencil---     aspect and stencil test is enabled,+--     aspect, both front and back @writeMask@ are not zero, and stencil+--     test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -4213,7 +4215,8 @@ -- -- -   #VUID-vkCmdDrawIndexed-None-06887# If the current render pass --     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,+--     for the stencil aspect, both front and back @writeMask@ are not+--     zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -6024,7 +6027,8 @@ -- -- -   #VUID-vkCmdDrawIndirect-None-06887# If the current render pass --     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,+--     for the stencil aspect, both front and back @writeMask@ are not+--     zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -7845,7 +7849,8 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirect-None-06887# If the current render --     pass instance uses a depth\/stencil attachment with a read-only---     layout for the stencil aspect and stencil test is enabled,+--     layout for the stencil aspect, both front and back @writeMask@ are+--     not zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -11777,7 +11782,7 @@ -- = Description -- -- Each source region specified by @pRegions@ is copied from the source--- buffer to the destination region of the destination image according to+-- image to the destination region of the destination buffer according to -- the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressing addressing calculations> -- for each resource. If any of the specified regions in @srcImage@
src/Vulkan/Core10/Device.hs view
@@ -215,6 +215,7 @@ import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (PhysicalDeviceSwapchainMaintenance1FeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures)@@ -959,6 +960,7 @@ --     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures', --     'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.PhysicalDeviceSubpassMergeFeedbackFeaturesEXT', --     'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.PhysicalDeviceSwapchainMaintenance1FeaturesEXT', --     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', --     'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT', --     'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',@@ -1060,6 +1062,7 @@   extends _ f     | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = Just f     | Just Refl <- eqT @e @PhysicalDeviceRayTracingInvocationReorderFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceSwapchainMaintenance1FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderCoreBuiltinsFeaturesARM = Just f     | Just Refl <- eqT @e @PhysicalDeviceFaultFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceOpticalFlowFeaturesNV = Just f
src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs view
@@ -96,7 +96,9 @@ -- 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'. pattern IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = ImageCreateFlagBits 0x00008000 --- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"+-- | 'IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT' specifies that the image /can/+-- be used to create a 'Vulkan.Core10.Handles.ImageView' of type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'. pattern IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = ImageCreateFlagBits 0x00020000  -- | 'IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT' specifies
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -204,11 +204,7 @@ pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR = ImageLayout 1000111000  -- | 'IMAGE_LAYOUT_PRESENT_SRC_KHR' /must/ only be used for presenting a--- presentable image for display. A swapchain’s image /must/ be--- transitioned to this layout before calling--- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', and /must/ be--- transitioned away from this layout after calling--- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR'.+-- presentable image for display. pattern IMAGE_LAYOUT_PRESENT_SRC_KHR = ImageLayout 1000001002  -- | 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL' specifies a layout that /must/ only be
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -246,6 +246,15 @@                                                         , STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT+                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT+                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT+                                                        , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT+                                                        , STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT+                                                        , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR@@ -1197,6 +1206,7 @@ -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI', -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.PhysicalDeviceSwapchainMaintenance1FeaturesEXT', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',@@ -1294,6 +1304,7 @@ -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineInterfaceCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingShaderGroupCreateInfoKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingShaderGroupCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.ReleaseSwapchainImagesInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo', -- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo', -- 'Vulkan.Core10.Pass.RenderPassCreateInfo',@@ -1354,11 +1365,18 @@ -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveInfoEXT', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT',+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT',+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT',+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT', -- 'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR', -- 'Vulkan.Extensions.VK_EXT_display_control.SwapchainCounterCreateInfoEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD', -- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentFenceInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModeInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.SysmemColorSpaceFUCHSIA', -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD', -- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM',@@ -2175,6 +2193,33 @@ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = StructureType 1000277000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT"+pattern STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = StructureType 1000275005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = StructureType 1000275004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT"+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = StructureType 1000275003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = StructureType 1000275002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT"+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = StructureType 1000275001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = StructureType 1000275000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT"+pattern STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = StructureType 1000274002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT"+pattern STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = StructureType 1000274001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT"+pattern STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = StructureType 1000274000+ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = StructureType 1000273000 @@ -3721,6 +3766,15 @@   , STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV   , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV   , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV+  , STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT+  , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT+  , STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT+  , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT   , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR   , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR@@ -5133,6 +5187,42 @@   ,     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV     , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT+    , "RELEASE_SWAPCHAIN_IMAGES_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT+    , "SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT+    , "SWAPCHAIN_PRESENT_MODE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT+    , "SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT+    , "SWAPCHAIN_PRESENT_FENCE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT+    , "PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT+    , "SURFACE_PRESENT_MODE_COMPATIBILITY_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT+    , "SURFACE_PRESENT_SCALING_CAPABILITIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT+    , "SURFACE_PRESENT_MODE_EXT"     )   ,     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -202,6 +202,7 @@ -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT', -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR',+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,@@ -579,6 +580,7 @@ -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures', -- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.PhysicalDeviceSubpassMergeFeedbackFeaturesEXT', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.PhysicalDeviceSwapchainMaintenance1FeaturesEXT', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',
src/Vulkan/Core10/Handles.hs view
@@ -462,6 +462,7 @@ -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.releaseFullScreenExclusiveModeEXT', -- 'Vulkan.Extensions.VK_INTEL_performance_query.releasePerformanceConfigurationINTEL', -- 'Vulkan.Extensions.VK_KHR_performance_query.releaseProfilingLockKHR',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.releaseSwapchainImagesEXT', -- 'Vulkan.Core10.CommandPool.resetCommandPool', -- 'Vulkan.Core10.DescriptorSet.resetDescriptorPool', -- 'Vulkan.Core10.Event.resetEvent', 'Vulkan.Core10.Fence.resetFences',@@ -1204,6 +1205,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.FenceGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_fence_fd.ImportFenceFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ImportFenceWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentFenceInfoEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR', -- 'Vulkan.Core10.Fence.createFence', 'Vulkan.Core10.Fence.destroyFence', -- 'Vulkan.Core10.Fence.getFenceStatus',
src/Vulkan/Core10/Image.hs view
@@ -906,6 +906,10 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT', --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' --+-- -   #VUID-VkImageCreateInfo-flags-07755# If @flags@ contains+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT',+--     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'+-- -- -   #VUID-VkImageCreateInfo-extent-02252# @extent.width@ /must/ be less --     than or equal to @imageCreateMaxExtent.width@ (as defined in --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)
src/Vulkan/Core10/Pipeline.hs view
@@ -3591,7 +3591,8 @@     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil testing>     -- is enabled.     stencilTestEnable :: Bool-  , -- | @front@ and @back@ control the parameters of the+  , -- | @front@ and @back@ are 'StencilOpState' values controlling the+    -- corresponding parameters of the     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil test>.     front :: StencilOpState   , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "back"
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -289,6 +289,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (PhysicalDeviceSwapchainMaintenance1FeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties)@@ -851,6 +852,7 @@   extends _ f     | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = Just f     | Just Refl <- eqT @e @PhysicalDeviceRayTracingInvocationReorderFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceSwapchainMaintenance1FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderCoreBuiltinsFeaturesARM = Just f     | Just Refl <- eqT @e @PhysicalDeviceFaultFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceOpticalFlowFeaturesNV = Just f
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -505,7 +505,8 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-None-06887# If the current render pass --     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,+--     for the stencil aspect, both front and back @writeMask@ are not+--     zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -2369,7 +2370,8 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-06887# If the current --     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the stencil aspect and stencil test is enabled,+--     read-only layout for the stencil aspect, both front and back+--     @writeMask@ are not zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --
src/Vulkan/Dynamic.hs view
@@ -346,6 +346,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (RayTracingPipelineCreateInfoNV) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Rect2D) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (RefreshCycleDurationGOOGLE)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (ReleaseSwapchainImagesInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (RemoteAddressNV) import {-# SOURCE #-} Vulkan.Core10.Handles (RenderPass) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo)@@ -1256,6 +1257,7 @@   , pVkBindOpticalFlowSessionImageNV :: FunPtr (Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result)   , pVkCmdOpticalFlowExecuteNV :: FunPtr (Ptr CommandBuffer_T -> OpticalFlowSessionNV -> ("pExecuteInfo" ::: Ptr OpticalFlowExecuteInfoNV) -> IO ())   , pVkGetDeviceFaultInfoEXT :: FunPtr (Ptr Device_T -> ("pFaultCounts" ::: Ptr DeviceFaultCountsEXT) -> ("pFaultInfo" ::: Ptr DeviceFaultInfoEXT) -> IO Result)+  , pVkReleaseSwapchainImagesEXT :: FunPtr (Ptr Device_T -> ("pReleaseInfo" ::: Ptr ReleaseSwapchainImagesInfoEXT) -> IO Result)   }  deriving instance Eq DeviceCmds@@ -1694,7 +1696,7 @@     nullFunPtr     nullFunPtr     nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -2219,6 +2221,7 @@   vkBindOpticalFlowSessionImageNV <- getDeviceProcAddr' handle (Ptr "vkBindOpticalFlowSessionImageNV"#)   vkCmdOpticalFlowExecuteNV <- getDeviceProcAddr' handle (Ptr "vkCmdOpticalFlowExecuteNV"#)   vkGetDeviceFaultInfoEXT <- getDeviceProcAddr' handle (Ptr "vkGetDeviceFaultInfoEXT"#)+  vkReleaseSwapchainImagesEXT <- getDeviceProcAddr' handle (Ptr "vkReleaseSwapchainImagesEXT"#)   pure $ DeviceCmds handle     (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr)     (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -2656,4 +2659,5 @@     (castFunPtr @_ @(Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result) vkBindOpticalFlowSessionImageNV)     (castFunPtr @_ @(Ptr CommandBuffer_T -> OpticalFlowSessionNV -> ("pExecuteInfo" ::: Ptr OpticalFlowExecuteInfoNV) -> IO ()) vkCmdOpticalFlowExecuteNV)     (castFunPtr @_ @(Ptr Device_T -> ("pFaultCounts" ::: Ptr DeviceFaultCountsEXT) -> ("pFaultInfo" ::: Ptr DeviceFaultInfoEXT) -> IO Result) vkGetDeviceFaultInfoEXT)+    (castFunPtr @_ @(Ptr Device_T -> ("pReleaseInfo" ::: Ptr ReleaseSwapchainImagesInfoEXT) -> IO Result) vkReleaseSwapchainImagesEXT) 
src/Vulkan/Extensions.hs view
@@ -126,7 +126,9 @@                           , module Vulkan.Extensions.VK_EXT_shader_viewport_index_layer                           , module Vulkan.Extensions.VK_EXT_subgroup_size_control                           , module Vulkan.Extensions.VK_EXT_subpass_merge_feedback+                          , module Vulkan.Extensions.VK_EXT_surface_maintenance1                           , module Vulkan.Extensions.VK_EXT_swapchain_colorspace+                          , module Vulkan.Extensions.VK_EXT_swapchain_maintenance1                           , module Vulkan.Extensions.VK_EXT_texel_buffer_alignment                           , module Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr                           , module Vulkan.Extensions.VK_EXT_tooling_info@@ -434,7 +436,9 @@ import Vulkan.Extensions.VK_EXT_shader_viewport_index_layer import Vulkan.Extensions.VK_EXT_subgroup_size_control import Vulkan.Extensions.VK_EXT_subpass_merge_feedback+import Vulkan.Extensions.VK_EXT_surface_maintenance1 import Vulkan.Extensions.VK_EXT_swapchain_colorspace+import Vulkan.Extensions.VK_EXT_swapchain_maintenance1 import Vulkan.Extensions.VK_EXT_texel_buffer_alignment import Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr import Vulkan.Extensions.VK_EXT_tooling_info
src/Vulkan/Extensions/Dependencies.hs view
@@ -92,7 +92,9 @@ import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_module_identifier (pattern EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_subgroup_size_control (pattern EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_surface_maintenance1 (pattern EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_swapchain_colorspace (pattern EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (pattern EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_texel_buffer_alignment (pattern EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (pattern EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_transform_feedback (pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME)@@ -601,6 +603,17 @@   EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME ->     [ EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]+  EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME ->+    [ KHR_SURFACE_EXTENSION_NAME+    , KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME+    ]+  EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME ->+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    , KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME     ]   EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME ->
src/Vulkan/Extensions/Handles.hs view
@@ -482,7 +482,11 @@ -- transition the image’s layout, queue rendering commands to it, etc. -- Finally, the application presents the image with -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', which releases the--- acquisition of the image.+-- acquisition of the image. The application /can/ also release the+-- acquisition of the image through+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.releaseSwapchainImagesEXT',+-- if the image is not in use by the device, and skip the present+-- operation. -- -- The presentation engine controls the order in which presentable images -- are acquired for use by the application.@@ -501,6 +505,7 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.ReleaseSwapchainImagesInfoEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.acquireFullScreenExclusiveModeEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR',
src/Vulkan/Extensions/VK_EXT_mesh_shader.hs view
@@ -793,7 +793,8 @@ -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-06887# If the current render pass --     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,+--     for the stencil aspect, both front and back @writeMask@ are not+--     zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -2553,7 +2554,8 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887# If the current --     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the stencil aspect and stencil test is enabled,+--     read-only layout for the stencil aspect, both front and back+--     @writeMask@ are not zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -4304,7 +4306,8 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887# If the current --     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the stencil aspect and stencil test is enabled,+--     read-only layout for the stencil aspect, both front and back+--     @writeMask@ are not zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -658,7 +658,8 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-None-06887# If the current render pass --     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,+--     for the stencil aspect, both front and back @writeMask@ are not+--     zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -2479,7 +2480,8 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-06887# If the current render --     pass instance uses a depth\/stencil attachment with a read-only---     layout for the stencil aspect and stencil test is enabled,+--     layout for the stencil aspect, both front and back @writeMask@ are+--     not zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --
src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs view
@@ -34,6 +34,9 @@ -- --     -   Eric Werness --+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_opacity_micromap.adoc VK_EXT_opacity_micromap>+-- -- == Other Extension Metadata -- -- [__Last Modified Date__]
src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot view
@@ -34,6 +34,9 @@ -- --     -   Eric Werness --+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_opacity_micromap.adoc VK_EXT_opacity_micromap>+-- -- == Other Extension Metadata -- -- [__Last Modified Date__]
+ src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs view
@@ -0,0 +1,663 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_surface_maintenance1 - instance extension+--+-- == VK_EXT_surface_maintenance1+--+-- [__Name String__]+--     @VK_EXT_surface_maintenance1@+--+-- [__Extension Type__]+--     Instance extension+--+-- [__Registered Extension Number__]+--     275+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_surface@ to be enabled+--+--     -   Requires @VK_KHR_get_surface_capabilities2@ to be enabled+--+-- [__Contact__]+--+--     -   Shahbaz Youssefi+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_surface_maintenance1] @syoussefi%0A*Here describe the issue or question you have about the VK_EXT_surface_maintenance1 extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_surface_maintenance1.adoc VK_EXT_surface_maintenance1>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-11-09+--+-- [__Contributors__]+--+--     -   Jeff Juliano, NVIDIA+--+--     -   Lionel Landwerlin, Intel+--+--     -   Shahbaz Youssefi, Google+--+--     -   Chris Forbes, Google+--+--     -   Ian Elliott, Google+--+--     -   Hans-Kristian Arntzen, Valve+--+--     -   Daniel Stone, Collabora+--+-- == Description+--+-- @VK_EXT_surface_maintenance1@ adds a collection of window system+-- integration features that were intentionally left out or overlooked in+-- the original @VK_KHR_surface@ extension.+--+-- The new features are as follows:+--+-- -   Allow querying number of min\/max images from a surface for a+--     particular presentation mode.+--+-- -   Allow querying a surface’s scaled presentation capabilities.+--+-- -   Allow querying a surface for the set of presentation modes which can+--     be easily switched between without requiring swapchain recreation.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR':+--+--     -   'SurfacePresentModeEXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR':+--+--     -   'SurfacePresentModeCompatibilityEXT'+--+--     -   'SurfacePresentScalingCapabilitiesEXT'+--+-- == New Enums+--+-- -   'PresentGravityFlagBitsEXT'+--+-- -   'PresentScalingFlagBitsEXT'+--+-- == New Bitmasks+--+-- -   'PresentGravityFlagsEXT'+--+-- -   'PresentScalingFlagsEXT'+--+-- == New Enum Constants+--+-- -   'EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME'+--+-- -   'EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT'+--+-- == Version History+--+-- -   Revision 0, 2019-02-27 (Lionel Landwerlin)+--+--     -   Internal revisions+--+-- -   Revision 1, 2022-11-09 (Shahbaz Youssefi)+--+--     -   Add functionality and complete spec+--+-- == See Also+--+-- 'PresentGravityFlagBitsEXT', 'PresentGravityFlagsEXT',+-- 'PresentScalingFlagBitsEXT', 'PresentScalingFlagsEXT',+-- 'SurfacePresentModeCompatibilityEXT', 'SurfacePresentModeEXT',+-- 'SurfacePresentScalingCapabilitiesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_surface_maintenance1 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_surface_maintenance1  ( SurfacePresentModeEXT(..)+                                                      , SurfacePresentScalingCapabilitiesEXT(..)+                                                      , SurfacePresentModeCompatibilityEXT(..)+                                                      , PresentScalingFlagsEXT+                                                      , PresentScalingFlagBitsEXT( PRESENT_SCALING_ONE_TO_ONE_BIT_EXT+                                                                                 , PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT+                                                                                 , PRESENT_SCALING_STRETCH_BIT_EXT+                                                                                 , ..+                                                                                 )+                                                      , PresentGravityFlagsEXT+                                                      , PresentGravityFlagBitsEXT( PRESENT_GRAVITY_MIN_BIT_EXT+                                                                                 , PRESENT_GRAVITY_MAX_BIT_EXT+                                                                                 , PRESENT_GRAVITY_CENTERED_BIT_EXT+                                                                                 , ..+                                                                                 )+                                                      , EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION+                                                      , pattern EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION+                                                      , EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME+                                                      , pattern EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME+                                                      , PresentModeKHR(..)+                                                      ) where++import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+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 Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (Extent2D)+import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT))+import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR(..))+-- | VkSurfacePresentModeEXT - Structure describing present mode of a surface+--+-- = Description+--+-- If the 'SurfacePresentModeEXT' structure is included in the @pNext@+-- chain of+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',+-- the values returned in+-- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@minImageCount@,+-- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@maxImageCount@,+-- 'SurfacePresentScalingCapabilitiesEXT'::@minScaledImageExtent@, and+-- 'SurfacePresentScalingCapabilitiesEXT'::@maxScaledImageExtent@ are valid+-- only for the specified @presentMode@. If @presentMode@ is+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR',+-- the per-present mode image counts /must/ both be one. The per-present+-- mode image counts /may/ be less-than or greater-than the image counts+-- returned when 'SurfacePresentModeEXT' is not provided.+--+-- Note+--+-- If+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT'+-- is provided to swapchain creation, the requirements for forward progress+-- may be less strict. For example, a FIFO swapchain might only require 2+-- images to guarantee forward progress, but a MAILBOX one might require 4.+-- Without the per-present image counts, such an implementation would have+-- to return 4 in+-- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@minImageCount@,+-- which pessimizes FIFO. Conversely, an implementation may return a low+-- number for minImageCount, but internally bump the image count when+-- application queries+-- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR', which can+-- surprise applications, and is not discoverable until swapchain creation.+-- Using 'SurfacePresentModeEXT' and+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT'+-- together effectively removes this problem.+--+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT'+-- is required for the specification to be backwards compatible with+-- applications that do not know about, or make use of this feature.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1 VK_EXT_surface_maintenance1>,+-- 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SurfacePresentModeEXT = SurfacePresentModeEXT+  { -- | @presentMode@ is the presentation mode the swapchain will use.+    --+    -- #VUID-VkSurfacePresentModeEXT-presentMode-07780# @presentMode@ /must/ be+    -- a value reported by+    -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR'+    -- for the specified surface.+    --+    -- #VUID-VkSurfacePresentModeEXT-presentMode-parameter# @presentMode@+    -- /must/ be a valid 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR'+    -- value+    presentMode :: PresentModeKHR }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SurfacePresentModeEXT)+#endif+deriving instance Show SurfacePresentModeEXT++instance ToCStruct SurfacePresentModeEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SurfacePresentModeEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PresentModeKHR)) (presentMode)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PresentModeKHR)) (zero)+    f++instance FromCStruct SurfacePresentModeEXT where+  peekCStruct p = do+    presentMode <- peek @PresentModeKHR ((p `plusPtr` 16 :: Ptr PresentModeKHR))+    pure $ SurfacePresentModeEXT+             presentMode++instance Storable SurfacePresentModeEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SurfacePresentModeEXT where+  zero = SurfacePresentModeEXT+           zero+++-- | VkSurfacePresentScalingCapabilitiesEXT - Structure describing the+-- presentation scaling capabilities of the surface+--+-- = Description+--+-- Before creating a swapchain whose scaling mode /can/ be specified+-- through the use of+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT',+-- obtain the set of supported scaling modes by including a+-- 'SurfacePresentModeEXT' structure in the @pNext@ chain of+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR'+-- when calling+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR'.+-- The implementation /must/ return the same values in+-- 'SurfacePresentScalingCapabilitiesEXT' for any of the compatible present+-- modes as obtained through 'SurfacePresentModeCompatibilityEXT'.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1 VK_EXT_surface_maintenance1>,+-- 'Vulkan.Core10.FundamentalTypes.Extent2D', 'PresentGravityFlagsEXT',+-- 'PresentScalingFlagsEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SurfacePresentScalingCapabilitiesEXT = SurfacePresentScalingCapabilitiesEXT+  { -- | @supportedPresentScaling@ is a bitmask of 'PresentScalingFlagBitsEXT'+    -- representing the scaling methods supported by the surface, or @0@ if+    -- application-defined scaling is not supported.+    --+    -- #VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentScaling-parameter#+    -- @supportedPresentScaling@ /must/ be a valid combination of+    -- 'PresentScalingFlagBitsEXT' values+    supportedPresentScaling :: PresentScalingFlagsEXT+  , -- | @supportedPresentGravityX@ is a bitmask of 'PresentGravityFlagBitsEXT'+    -- representing the X-axis pixel gravity supported by the surface, or @0@+    -- if Vulkan-defined pixel gravity is not supported for the X axis.+    --+    -- #VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityX-parameter#+    -- @supportedPresentGravityX@ /must/ be a valid combination of+    -- 'PresentGravityFlagBitsEXT' values+    supportedPresentGravityX :: PresentGravityFlagsEXT+  , -- | @supportedPresentGravityY@ is a bitmask of 'PresentGravityFlagBitsEXT'+    -- representing the Y-axis pixel gravity supported by the surface, or @0@+    -- if Vulkan-defined pixel gravity is not supported for the Y axis.+    --+    -- #VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityY-parameter#+    -- @supportedPresentGravityY@ /must/ be a valid combination of+    -- 'PresentGravityFlagBitsEXT' values+    supportedPresentGravityY :: PresentGravityFlagsEXT+  , -- | @minScaledImageExtent@ contains the smallest valid swapchain extent for+    -- the surface on the specified device when one of the scaling methods+    -- specified in @supportedPresentScaling@ is used, or the special value+    -- (0xFFFFFFFF, 0xFFFFFFFF) indicating that the surface size will be+    -- determined by the extent of a swapchain targeting the surface. The+    -- @width@ and @height@ of the extent will each be smaller than or equal to+    -- the corresponding @width@ and @height@ of+    -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@minImageExtent@.+    minScaledImageExtent :: Extent2D+  , -- | @maxScaledImageExtent@ contains the largest valid swapchain extent for+    -- the surface on the specified device when one of the scaling methods+    -- specified in @supportedPresentScaling@ is used, or the special value+    -- described above for @minScaledImageExtent@. The @width@ and @height@ of+    -- the extent will each be greater than or equal to the corresponding+    -- @width@ and @height@ of+    -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@maxImageExtent@.+    maxScaledImageExtent :: Extent2D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SurfacePresentScalingCapabilitiesEXT)+#endif+deriving instance Show SurfacePresentScalingCapabilitiesEXT++instance ToCStruct SurfacePresentScalingCapabilitiesEXT where+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SurfacePresentScalingCapabilitiesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PresentScalingFlagsEXT)) (supportedPresentScaling)+    poke ((p `plusPtr` 20 :: Ptr PresentGravityFlagsEXT)) (supportedPresentGravityX)+    poke ((p `plusPtr` 24 :: Ptr PresentGravityFlagsEXT)) (supportedPresentGravityY)+    poke ((p `plusPtr` 28 :: Ptr Extent2D)) (minScaledImageExtent)+    poke ((p `plusPtr` 36 :: Ptr Extent2D)) (maxScaledImageExtent)+    f+  cStructSize = 48+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct SurfacePresentScalingCapabilitiesEXT where+  peekCStruct p = do+    supportedPresentScaling <- peek @PresentScalingFlagsEXT ((p `plusPtr` 16 :: Ptr PresentScalingFlagsEXT))+    supportedPresentGravityX <- peek @PresentGravityFlagsEXT ((p `plusPtr` 20 :: Ptr PresentGravityFlagsEXT))+    supportedPresentGravityY <- peek @PresentGravityFlagsEXT ((p `plusPtr` 24 :: Ptr PresentGravityFlagsEXT))+    minScaledImageExtent <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))+    maxScaledImageExtent <- peekCStruct @Extent2D ((p `plusPtr` 36 :: Ptr Extent2D))+    pure $ SurfacePresentScalingCapabilitiesEXT+             supportedPresentScaling+             supportedPresentGravityX+             supportedPresentGravityY+             minScaledImageExtent+             maxScaledImageExtent++instance Storable SurfacePresentScalingCapabilitiesEXT where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SurfacePresentScalingCapabilitiesEXT where+  zero = SurfacePresentScalingCapabilitiesEXT+           zero+           zero+           zero+           zero+           zero+++-- | VkSurfacePresentModeCompatibilityEXT - Structure describing the subset+-- of compatible presentation modes for the purposes of switching without+-- swapchain recreation+--+-- = Description+--+-- If @pPresentModes@ is @NULL@, then the number of present modes that are+-- compatible with the one specified in 'SurfacePresentModeEXT' is returned+-- in @presentModeCount@. Otherwise, @presentModeCount@ must be set by the+-- user to the number of elements in the @pPresentModes@ array, and on+-- return the variable is overwritten with the number of values actually+-- written to @pPresentModes@. If the value of @presentModeCount@ is less+-- than the number of compatible present modes that are supported, at most+-- @presentModeCount@ values will be written to @pPresentModes@. The+-- implementation /must/ include the present mode passed to+-- 'SurfacePresentModeEXT' in @pPresentModes@, unless @presentModeCount@ is+-- zero.+--+-- Before creating a swapchain whose present modes /can/ be modified+-- through the use of+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT',+-- obtain the set of present modes compatible with a given initial present+-- mode by including a 'SurfacePresentModeEXT' structure in the @pNext@+-- chain of+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR'+-- when calling+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR'.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkSurfacePresentModeCompatibilityEXT-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT'+--+-- -   #VUID-VkSurfacePresentModeCompatibilityEXT-pPresentModes-parameter#+--     If @presentModeCount@ is not @0@, and @pPresentModes@ is not @NULL@,+--     @pPresentModes@ /must/ be a valid pointer to an array of+--     @presentModeCount@ 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR'+--     values+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1 VK_EXT_surface_maintenance1>,+-- 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SurfacePresentModeCompatibilityEXT = SurfacePresentModeCompatibilityEXT+  { -- | @presentModeCount@ is an integer related to the number of present modes+    -- available or queried, as described below.+    presentModeCount :: Word32+  , -- | @pPresentModes@ is a pointer to an array of+    -- 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR' in which present modes+    -- compatible with a given present mode are returned.+    presentModes :: Ptr PresentModeKHR+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SurfacePresentModeCompatibilityEXT)+#endif+deriving instance Show SurfacePresentModeCompatibilityEXT++instance ToCStruct SurfacePresentModeCompatibilityEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SurfacePresentModeCompatibilityEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (presentModeCount)+    poke ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR))) (presentModes)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct SurfacePresentModeCompatibilityEXT where+  peekCStruct p = do+    presentModeCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pPresentModes <- peek @(Ptr PresentModeKHR) ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR)))+    pure $ SurfacePresentModeCompatibilityEXT+             presentModeCount pPresentModes++instance Storable SurfacePresentModeCompatibilityEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SurfacePresentModeCompatibilityEXT where+  zero = SurfacePresentModeCompatibilityEXT+           zero+           zero+++type PresentScalingFlagsEXT = PresentScalingFlagBitsEXT++-- | VkPresentScalingFlagBitsEXT - Bitmask specifying presentation scaling+-- methods+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1 VK_EXT_surface_maintenance1>,+-- 'PresentScalingFlagsEXT'+newtype PresentScalingFlagBitsEXT = PresentScalingFlagBitsEXT Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'PRESENT_SCALING_ONE_TO_ONE_BIT_EXT' specifies that no scaling occurs,+-- and pixels in the swapchain image are mapped to one and only one pixel+-- in the surface. The mapping between pixels is defined by the chosen+-- presentation gravity.+pattern PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = PresentScalingFlagBitsEXT 0x00000001++-- | 'PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT' specifies that the+-- swapchain image will be minified or magnified such that at least one of+-- the resulting width or height is equal to the corresponding surface+-- dimension, and the other resulting dimension is less than or equal to+-- the corresponding surface dimension, with the aspect ratio of the+-- resulting image being identical to that of the original swapchain image.+pattern PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = PresentScalingFlagBitsEXT 0x00000002++-- | 'PRESENT_SCALING_STRETCH_BIT_EXT' specifies that the swapchain image+-- will be minified or magnified such that the resulting image dimensions+-- are equal to those of the surface.+pattern PRESENT_SCALING_STRETCH_BIT_EXT = PresentScalingFlagBitsEXT 0x00000004++conNamePresentScalingFlagBitsEXT :: String+conNamePresentScalingFlagBitsEXT = "PresentScalingFlagBitsEXT"++enumPrefixPresentScalingFlagBitsEXT :: String+enumPrefixPresentScalingFlagBitsEXT = "PRESENT_SCALING_"++showTablePresentScalingFlagBitsEXT :: [(PresentScalingFlagBitsEXT, String)]+showTablePresentScalingFlagBitsEXT =+  [+    ( PRESENT_SCALING_ONE_TO_ONE_BIT_EXT+    , "ONE_TO_ONE_BIT_EXT"+    )+  ,+    ( PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT+    , "ASPECT_RATIO_STRETCH_BIT_EXT"+    )+  ,+    ( PRESENT_SCALING_STRETCH_BIT_EXT+    , "STRETCH_BIT_EXT"+    )+  ]++instance Show PresentScalingFlagBitsEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixPresentScalingFlagBitsEXT+      showTablePresentScalingFlagBitsEXT+      conNamePresentScalingFlagBitsEXT+      (\(PresentScalingFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read PresentScalingFlagBitsEXT where+  readPrec =+    enumReadPrec+      enumPrefixPresentScalingFlagBitsEXT+      showTablePresentScalingFlagBitsEXT+      conNamePresentScalingFlagBitsEXT+      PresentScalingFlagBitsEXT++type PresentGravityFlagsEXT = PresentGravityFlagBitsEXT++-- | VkPresentGravityFlagBitsEXT - Bitmask specifying presentation pixel+-- gravity on either the x or y axis+--+-- = Description+--+-- If the value in+-- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@currentTransform@+-- is not+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',+-- it is implementation-defined whether the gravity configuration applies+-- to the presented image before or after transformation.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1 VK_EXT_surface_maintenance1>,+-- 'PresentGravityFlagsEXT'+newtype PresentGravityFlagBitsEXT = PresentGravityFlagBitsEXT Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'PRESENT_GRAVITY_MIN_BIT_EXT' means that the pixels will gravitate+-- towards the top or left side of the surface.+pattern PRESENT_GRAVITY_MIN_BIT_EXT = PresentGravityFlagBitsEXT 0x00000001++-- | 'PRESENT_GRAVITY_MAX_BIT_EXT' means that the pixels will gravitate+-- towards the bottom or right side of the surface.+pattern PRESENT_GRAVITY_MAX_BIT_EXT = PresentGravityFlagBitsEXT 0x00000002++-- | 'PRESENT_GRAVITY_CENTERED_BIT_EXT' means that the pixels will be+-- centered in the surface.+pattern PRESENT_GRAVITY_CENTERED_BIT_EXT = PresentGravityFlagBitsEXT 0x00000004++conNamePresentGravityFlagBitsEXT :: String+conNamePresentGravityFlagBitsEXT = "PresentGravityFlagBitsEXT"++enumPrefixPresentGravityFlagBitsEXT :: String+enumPrefixPresentGravityFlagBitsEXT = "PRESENT_GRAVITY_"++showTablePresentGravityFlagBitsEXT :: [(PresentGravityFlagBitsEXT, String)]+showTablePresentGravityFlagBitsEXT =+  [+    ( PRESENT_GRAVITY_MIN_BIT_EXT+    , "MIN_BIT_EXT"+    )+  ,+    ( PRESENT_GRAVITY_MAX_BIT_EXT+    , "MAX_BIT_EXT"+    )+  ,+    ( PRESENT_GRAVITY_CENTERED_BIT_EXT+    , "CENTERED_BIT_EXT"+    )+  ]++instance Show PresentGravityFlagBitsEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixPresentGravityFlagBitsEXT+      showTablePresentGravityFlagBitsEXT+      conNamePresentGravityFlagBitsEXT+      (\(PresentGravityFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read PresentGravityFlagBitsEXT where+  readPrec =+    enumReadPrec+      enumPrefixPresentGravityFlagBitsEXT+      showTablePresentGravityFlagBitsEXT+      conNamePresentGravityFlagBitsEXT+      PresentGravityFlagBitsEXT++type EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION"+pattern EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1+++type EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1"++-- No documentation found for TopLevel "VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME"+pattern EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1"+
+ src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot view
@@ -0,0 +1,168 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_surface_maintenance1 - instance extension+--+-- == VK_EXT_surface_maintenance1+--+-- [__Name String__]+--     @VK_EXT_surface_maintenance1@+--+-- [__Extension Type__]+--     Instance extension+--+-- [__Registered Extension Number__]+--     275+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_surface@ to be enabled+--+--     -   Requires @VK_KHR_get_surface_capabilities2@ to be enabled+--+-- [__Contact__]+--+--     -   Shahbaz Youssefi+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_surface_maintenance1] @syoussefi%0A*Here describe the issue or question you have about the VK_EXT_surface_maintenance1 extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_surface_maintenance1.adoc VK_EXT_surface_maintenance1>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-11-09+--+-- [__Contributors__]+--+--     -   Jeff Juliano, NVIDIA+--+--     -   Lionel Landwerlin, Intel+--+--     -   Shahbaz Youssefi, Google+--+--     -   Chris Forbes, Google+--+--     -   Ian Elliott, Google+--+--     -   Hans-Kristian Arntzen, Valve+--+--     -   Daniel Stone, Collabora+--+-- == Description+--+-- @VK_EXT_surface_maintenance1@ adds a collection of window system+-- integration features that were intentionally left out or overlooked in+-- the original @VK_KHR_surface@ extension.+--+-- The new features are as follows:+--+-- -   Allow querying number of min\/max images from a surface for a+--     particular presentation mode.+--+-- -   Allow querying a surface’s scaled presentation capabilities.+--+-- -   Allow querying a surface for the set of presentation modes which can+--     be easily switched between without requiring swapchain recreation.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR':+--+--     -   'SurfacePresentModeEXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR':+--+--     -   'SurfacePresentModeCompatibilityEXT'+--+--     -   'SurfacePresentScalingCapabilitiesEXT'+--+-- == New Enums+--+-- -   'PresentGravityFlagBitsEXT'+--+-- -   'PresentScalingFlagBitsEXT'+--+-- == New Bitmasks+--+-- -   'PresentGravityFlagsEXT'+--+-- -   'PresentScalingFlagsEXT'+--+-- == New Enum Constants+--+-- -   'EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME'+--+-- -   'EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT'+--+-- == Version History+--+-- -   Revision 0, 2019-02-27 (Lionel Landwerlin)+--+--     -   Internal revisions+--+-- -   Revision 1, 2022-11-09 (Shahbaz Youssefi)+--+--     -   Add functionality and complete spec+--+-- == See Also+--+-- 'PresentGravityFlagBitsEXT', 'PresentGravityFlagsEXT',+-- 'PresentScalingFlagBitsEXT', 'PresentScalingFlagsEXT',+-- 'SurfacePresentModeCompatibilityEXT', 'SurfacePresentModeEXT',+-- 'SurfacePresentScalingCapabilitiesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_surface_maintenance1 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_surface_maintenance1  ( SurfacePresentModeCompatibilityEXT+                                                      , SurfacePresentModeEXT+                                                      , SurfacePresentScalingCapabilitiesEXT+                                                      ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data SurfacePresentModeCompatibilityEXT++instance ToCStruct SurfacePresentModeCompatibilityEXT+instance Show SurfacePresentModeCompatibilityEXT++instance FromCStruct SurfacePresentModeCompatibilityEXT+++data SurfacePresentModeEXT++instance ToCStruct SurfacePresentModeEXT+instance Show SurfacePresentModeEXT++instance FromCStruct SurfacePresentModeEXT+++data SurfacePresentScalingCapabilitiesEXT++instance ToCStruct SurfacePresentScalingCapabilitiesEXT+instance Show SurfacePresentScalingCapabilitiesEXT++instance FromCStruct SurfacePresentScalingCapabilitiesEXT+
+ src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs view
@@ -0,0 +1,1037 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_swapchain_maintenance1 - device extension+--+-- == VK_EXT_swapchain_maintenance1+--+-- [__Name String__]+--     @VK_EXT_swapchain_maintenance1@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     276+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_swapchain@ to be enabled for any device-level+--         functionality+--+--     -   Requires @VK_EXT_surface_maintenance1@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Shahbaz Youssefi+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_swapchain_maintenance1] @syoussefi%0A*Here describe the issue or question you have about the VK_EXT_swapchain_maintenance1 extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_swapchain_maintenance1.adoc VK_EXT_swapchain_maintenance1>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-10-28+--+-- [__Contributors__]+--+--     -   Jeff Juliano, NVIDIA+--+--     -   Shahbaz Youssefi, Google+--+--     -   Chris Forbes, Google+--+--     -   Ian Elliott, Google+--+--     -   Yiwei Zhang, Google+--+--     -   Charlie Lao, Google+--+--     -   Chad Versace, Google+--+--     -   Ralph Potter, Samsung+--+--     -   Igor Nazarov, Samsung+--+--     -   Hyunchang Kim, Samsung+--+--     -   Suenghwan Lee, Samsung+--+--     -   Munseong Kang, Samsung+--+--     -   Joonyong Park, Samsung+--+--     -   Hans-Kristian Arntzen, Valve+--+--     -   Lisa Wu, Arm+--+--     -   Daniel Stone, Collabora+--+--     -   Pan Gao, Huawei+--+-- == Description+--+-- @VK_EXT_swapchain_maintenance1@ adds a collection of window system+-- integration features that were intentionally left out or overlooked in+-- the original @VK_KHR_swapchain@ extension.+--+-- The new features are as follows:+--+-- -   Specify a fence that will be signaled when the resources associated+--     with a present operation /can/ be safely destroyed.+--+-- -   Allow changing the present mode a swapchain is using at per-present+--     granularity.+--+-- -   Allow applications to define the behavior when presenting a+--     swapchain image to a surface with different dimensions than the+--     image. Using this feature /may/ allow implementations to avoid+--     returning 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR' in this+--     situation.+--+-- -   Allow applications to defer swapchain memory allocation for improved+--     startup time and memory footprint.+--+-- -   Allow applications to release previously acquired images without+--     presenting them.+--+-- == New Commands+--+-- -   'releaseSwapchainImagesEXT'+--+-- == New Structures+--+-- -   'ReleaseSwapchainImagesInfoEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceSwapchainMaintenance1FeaturesEXT'+--+-- -   Extending 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR':+--+--     -   'SwapchainPresentFenceInfoEXT'+--+--     -   'SwapchainPresentModeInfoEXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR':+--+--     -   'SwapchainPresentModesCreateInfoEXT'+--+--     -   'SwapchainPresentScalingCreateInfoEXT'+--+-- == New Enum Constants+--+-- -   'EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME'+--+-- -   'EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateFlagBitsKHR':+--+--     -   'Vulkan.Extensions.VK_KHR_swapchain.SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT'+--+-- == Version History+--+-- -   Revision 0, 2019-05-28+--+--     -   Initial revisions+--+-- -   Revision 1, 2022-08-21 (Shahbaz Youssefi)+--+--     -   Add functionality and complete spec+--+-- == See Also+--+-- 'PhysicalDeviceSwapchainMaintenance1FeaturesEXT',+-- 'ReleaseSwapchainImagesInfoEXT', 'SwapchainPresentFenceInfoEXT',+-- 'SwapchainPresentModeInfoEXT', 'SwapchainPresentModesCreateInfoEXT',+-- 'SwapchainPresentScalingCreateInfoEXT', 'releaseSwapchainImagesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_swapchain_maintenance1  ( releaseSwapchainImagesEXT+                                                        , PhysicalDeviceSwapchainMaintenance1FeaturesEXT(..)+                                                        , SwapchainPresentFenceInfoEXT(..)+                                                        , SwapchainPresentModesCreateInfoEXT(..)+                                                        , SwapchainPresentModeInfoEXT(..)+                                                        , SwapchainPresentScalingCreateInfoEXT(..)+                                                        , ReleaseSwapchainImagesInfoEXT(..)+                                                        , EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION+                                                        , pattern EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION+                                                        , EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME+                                                        , pattern EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME+                                                        , SwapchainKHR(..)+                                                        , PresentModeKHR(..)+                                                        , SwapchainCreateFlagBitsKHR(..)+                                                        , SwapchainCreateFlagsKHR+                                                        , PresentScalingFlagBitsEXT(..)+                                                        , PresentScalingFlagsEXT+                                                        , PresentGravityFlagBitsEXT(..)+                                                        , PresentGravityFlagsEXT+                                                        ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.Base (when)+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 Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+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.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkReleaseSwapchainImagesEXT))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core10.Handles (Fence)+import Vulkan.Extensions.VK_EXT_surface_maintenance1 (PresentGravityFlagsEXT)+import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR)+import Vulkan.Extensions.VK_EXT_surface_maintenance1 (PresentScalingFlagsEXT)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Extensions.Handles (SwapchainKHR)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.VK_EXT_surface_maintenance1 (PresentGravityFlagBitsEXT(..))+import Vulkan.Extensions.VK_EXT_surface_maintenance1 (PresentGravityFlagsEXT)+import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR(..))+import Vulkan.Extensions.VK_EXT_surface_maintenance1 (PresentScalingFlagBitsEXT(..))+import Vulkan.Extensions.VK_EXT_surface_maintenance1 (PresentScalingFlagsEXT)+import Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateFlagBitsKHR(..))+import Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateFlagsKHR)+import Vulkan.Extensions.Handles (SwapchainKHR(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkReleaseSwapchainImagesEXT+  :: FunPtr (Ptr Device_T -> Ptr ReleaseSwapchainImagesInfoEXT -> IO Result) -> Ptr Device_T -> Ptr ReleaseSwapchainImagesInfoEXT -> IO Result++-- | vkReleaseSwapchainImagesEXT - Release previously acquired but unused+-- images+--+-- = Description+--+-- Only images that are not in use by the device /can/ be released.+--+-- Releasing images is a read-only operation that will not affect the+-- content of the released images. Upon reacquiring the image, the image+-- contents and its layout will be the same as they were prior to releasing+-- it. However, if a mechanism other than Vulkan is used to modify the+-- platform window associated with the swapchain, the content of all+-- presentable images in the swapchain becomes undefined.+--+-- Note+--+-- This functionality is useful during swapchain recreation, where acquired+-- images from the old swapchain can be released instead of presented.+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_SURFACE_LOST_KHR'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1 VK_EXT_swapchain_maintenance1>,+-- 'Vulkan.Core10.Handles.Device', 'ReleaseSwapchainImagesInfoEXT'+releaseSwapchainImagesEXT :: forall io+                           . (MonadIO io)+                          => -- | @device@ is the device associated with+                             -- 'ReleaseSwapchainImagesInfoEXT'::@swapchain@.+                             --+                             -- #VUID-vkReleaseSwapchainImagesEXT-device-parameter# @device@ /must/ be a+                             -- valid 'Vulkan.Core10.Handles.Device' handle+                             Device+                          -> -- | @pReleaseInfo@ is a pointer to a 'ReleaseSwapchainImagesInfoEXT'+                             -- structure containing parameters of the release.+                             --+                             -- #VUID-vkReleaseSwapchainImagesEXT-pReleaseInfo-parameter# @pReleaseInfo@+                             -- /must/ be a valid pointer to a valid 'ReleaseSwapchainImagesInfoEXT'+                             -- structure+                             ("releaseInfo" ::: ReleaseSwapchainImagesInfoEXT)+                          -> io ()+releaseSwapchainImagesEXT device releaseInfo = liftIO . evalContT $ do+  let vkReleaseSwapchainImagesEXTPtr = pVkReleaseSwapchainImagesEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkReleaseSwapchainImagesEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleaseSwapchainImagesEXT is null" Nothing Nothing+  let vkReleaseSwapchainImagesEXT' = mkVkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXTPtr+  pReleaseInfo <- ContT $ withCStruct (releaseInfo)+  r <- lift $ traceAroundEvent "vkReleaseSwapchainImagesEXT" (vkReleaseSwapchainImagesEXT'+                                                                (deviceHandle (device))+                                                                pReleaseInfo)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++-- | VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT - Structure describing+-- whether implementation supports swapchain maintenance1 functionality+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceSwapchainMaintenance1FeaturesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceSwapchainMaintenance1FeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1 VK_EXT_swapchain_maintenance1>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSwapchainMaintenance1FeaturesEXT = PhysicalDeviceSwapchainMaintenance1FeaturesEXT+  { -- | #features-swapchainMaintenance1# @swapchainMaintenance1@ indicates that+    -- the implementation supports the following:+    --+    -- -   'SwapchainPresentFenceInfoEXT', specifying a fence that is signaled+    --     when the resources associated with a present operation /can/ be+    --     safely destroyed.+    --+    -- -   'SwapchainPresentModesCreateInfoEXT' and+    --     'SwapchainPresentModeInfoEXT', allowing the swapchain to switch+    --     present modes without a need for recreation.+    --+    -- -   'SwapchainPresentScalingCreateInfoEXT', specifying the scaling+    --     behavior of the swapchain in presence of window resizing.+    --+    -- -   The+    --     'Vulkan.Extensions.VK_KHR_swapchain.SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT'+    --     flag, allowing the implementation to defer the allocation of+    --     swapchain image memory until first acquisition.+    --+    -- -   'releaseSwapchainImagesEXT', allowing acquired swapchain images to+    --     be released without presenting them.+    swapchainMaintenance1 :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSwapchainMaintenance1FeaturesEXT)+#endif+deriving instance Show PhysicalDeviceSwapchainMaintenance1FeaturesEXT++instance ToCStruct PhysicalDeviceSwapchainMaintenance1FeaturesEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceSwapchainMaintenance1FeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (swapchainMaintenance1))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceSwapchainMaintenance1FeaturesEXT where+  peekCStruct p = do+    swapchainMaintenance1 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceSwapchainMaintenance1FeaturesEXT+             (bool32ToBool swapchainMaintenance1)++instance Storable PhysicalDeviceSwapchainMaintenance1FeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSwapchainMaintenance1FeaturesEXT where+  zero = PhysicalDeviceSwapchainMaintenance1FeaturesEXT+           zero+++-- | VkSwapchainPresentFenceInfoEXT - Fences associated with a+-- vkQueuePresentKHR operation+--+-- = Description+--+-- The set of /queue operations/ defined by queuing an image for+-- presentation, as well as operations performed by the presentation engine+-- access the payloads of objects associated with the presentation+-- operation. The associated objects include:+--+-- -   The swapchain image, its implicitly bound memory, and any other+--     resources bound to that memory.+--+-- -   The wait semaphores specified when queuing the image for+--     presentation.+--+-- The application /can/ provide a fence that the implementation will+-- signal when all such queue operations have completed and the+-- presentation engine has taken a reference to the payload of any objects+-- it accesses as part of the present operation. For all binary wait+-- semaphores imported by the presentation engine using the equivalent of+-- reference transference, as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- this fence /must/ not signal until all such semaphore payloads have been+-- reset by the presentation engine.+--+-- The application /can/ destroy the wait semaphores associated with a+-- given presentation operation when the associated fence is signaled, and+-- /can/ destroy the swapchain when the fences associated with all past+-- presentation requests have signaled.+--+-- Fences associated with presentations to the same swapchain on the same+-- 'Vulkan.Core10.Handles.Queue' /must/ be signaled in the same order as+-- the present operations.+--+-- To specify a fence for each swapchain in a present operation, include+-- the 'SwapchainPresentFenceInfoEXT' structure in the @pNext@ chain of the+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' structure.+--+-- == Valid Usage+--+-- -   #VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-07757#+--     @swapchainCount@ /must/ be equal to+--     'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR'::@swapchainCount@+--+-- -   #VUID-VkSwapchainPresentFenceInfoEXT-pFences-07758# Each element of+--     @pFences@ /must/ be unsignaled+--+-- -   #VUID-VkSwapchainPresentFenceInfoEXT-pFences-07759# Each element of+--     @pFences@ /must/ not be associated with any other queue command that+--     has not yet completed execution on that queue+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkSwapchainPresentFenceInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT'+--+-- -   #VUID-VkSwapchainPresentFenceInfoEXT-pFences-parameter# @pFences@+--     /must/ be a valid pointer to an array of @swapchainCount@ valid+--     'Vulkan.Core10.Handles.Fence' handles+--+-- -   #VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-arraylength#+--     @swapchainCount@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1 VK_EXT_swapchain_maintenance1>,+-- 'Vulkan.Core10.Handles.Fence',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SwapchainPresentFenceInfoEXT = SwapchainPresentFenceInfoEXT+  { -- | @pFences@ is a list of fences with @swapchainCount@ entries. Each entry+    -- /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' or the handle of a+    -- fence to signal when the relevant operations on the associated swapchain+    -- have completed.+    fences :: Vector Fence }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SwapchainPresentFenceInfoEXT)+#endif+deriving instance Show SwapchainPresentFenceInfoEXT++instance ToCStruct SwapchainPresentFenceInfoEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SwapchainPresentFenceInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (fences)) :: Word32))+    pPFences' <- ContT $ allocaBytes @Fence ((Data.Vector.length (fences)) * 8)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPFences' `plusPtr` (8 * (i)) :: Ptr Fence) (e)) (fences)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Fence))) (pPFences')+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct SwapchainPresentFenceInfoEXT where+  peekCStruct p = do+    swapchainCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pFences <- peek @(Ptr Fence) ((p `plusPtr` 24 :: Ptr (Ptr Fence)))+    pFences' <- generateM (fromIntegral swapchainCount) (\i -> peek @Fence ((pFences `advancePtrBytes` (8 * (i)) :: Ptr Fence)))+    pure $ SwapchainPresentFenceInfoEXT+             pFences'++instance Zero SwapchainPresentFenceInfoEXT where+  zero = SwapchainPresentFenceInfoEXT+           mempty+++-- | VkSwapchainPresentModesCreateInfoEXT - All presentation modes usable by+-- the swapchain+--+-- == Valid Usage+--+-- -   #VUID-VkSwapchainPresentModesCreateInfoEXT-None-07762# Each entry in+--     pPresentModes /must/ be one of the+--     'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR' values returned by+--     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR'+--     for the surface+--+-- -   #VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-07763# The+--     entries in pPresentModes /must/ be a subset of the present modes+--     returned in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT'::@pPresentModes@,+--     given+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@presentMode@+--     in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'+--+-- -   #VUID-VkSwapchainPresentModesCreateInfoEXT-presentMode-07764#+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@presentMode@+--     /must/ be included in @pPresentModes@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkSwapchainPresentModesCreateInfoEXT-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT'+--+-- -   #VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-parameter#+--     @pPresentModes@ /must/ be a valid pointer to an array of+--     @presentModeCount@ valid+--     'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR' values+--+-- -   #VUID-VkSwapchainPresentModesCreateInfoEXT-presentModeCount-arraylength#+--     @presentModeCount@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1 VK_EXT_swapchain_maintenance1>,+-- 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SwapchainPresentModesCreateInfoEXT = SwapchainPresentModesCreateInfoEXT+  { -- | @pPresentModes@ is a list of presentation modes with @presentModeCount@+    -- entries+    presentModes :: Vector PresentModeKHR }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SwapchainPresentModesCreateInfoEXT)+#endif+deriving instance Show SwapchainPresentModesCreateInfoEXT++instance ToCStruct SwapchainPresentModesCreateInfoEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SwapchainPresentModesCreateInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (presentModes)) :: Word32))+    pPPresentModes' <- ContT $ allocaBytes @PresentModeKHR ((Data.Vector.length (presentModes)) * 4)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPPresentModes' `plusPtr` (4 * (i)) :: Ptr PresentModeKHR) (e)) (presentModes)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR))) (pPPresentModes')+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct SwapchainPresentModesCreateInfoEXT where+  peekCStruct p = do+    presentModeCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pPresentModes <- peek @(Ptr PresentModeKHR) ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR)))+    pPresentModes' <- generateM (fromIntegral presentModeCount) (\i -> peek @PresentModeKHR ((pPresentModes `advancePtrBytes` (4 * (i)) :: Ptr PresentModeKHR)))+    pure $ SwapchainPresentModesCreateInfoEXT+             pPresentModes'++instance Zero SwapchainPresentModesCreateInfoEXT where+  zero = SwapchainPresentModesCreateInfoEXT+           mempty+++-- | VkSwapchainPresentModeInfoEXT - Presentation modes for a+-- vkQueuePresentKHR operation+--+-- = Description+--+-- If the @pNext@ chain of+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' includes a+-- 'SwapchainPresentModeInfoEXT' structure, then that structure defines the+-- presentation modes used for the current and subsequent presentation+-- operations.+--+-- When the application changes present modes with+-- 'SwapchainPresentModeInfoEXT', images that have already been queued for+-- presentation will continue to be presented according to the previous+-- present mode. The current image being queued for presentation and+-- subsequent images will be presented according to the new present mode.+-- The behavior during the transition between the two modes is defined as+-- follows.+--+-- -   Transition from+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR'+--     to+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR':+--     the presentation engine updates the shared presentable image+--     according to the behavior of+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR'.+--+-- -   Transition from+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR'+--     to+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR':+--     the presentation engine /may/ update the shared presentable image or+--     defer that to its regular refresh cycle, according to the behavior+--     of+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR'.+--+-- -   Transition between+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' and+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR':+--     Images continue to be appended to the same FIFO queue, and the+--     behavior with respect to waiting for vertical blanking period will+--     follow the new mode for current and subsequent images.+--+-- -   Transition from+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR' to+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' or+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR': As+--     all prior present requests in the+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR' mode+--     are applied immediately, there are no outstanding present operations+--     in this mode, and current and subsequent images are appended to the+--     FIFO queue and presented according to the new mode.+--+-- -   Transition from+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' to+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' or+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR':+--     Presentation in both modes require waiting for the next vertical+--     blanking period, with+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' allowing+--     the pending present operation to be replaced by a new one. In this+--     case, the current present operation will replace the pending present+--     operation and is applied according to the new mode.+--+-- -   Transition from+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' or+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR' to+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR' or+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR': If the+--     FIFO queue is empty, presentation is done according to the behavior+--     of the new mode. If there are present operations in the FIFO queue,+--     once the last present operation is performed based on the respective+--     vertical blanking period, the current and subsequent updates are+--     applied according to the new mode.+--+-- -   The behavior during transition between any other present modes, if+--     possible, is implementation defined.+--+-- == Valid Usage+--+-- -   #VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-07760#+--     @swapchainCount@ /must/ be equal to+--     'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR'::@swapchainCount@+--+-- -   #VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761# Each entry+--     in @pPresentModes@ must be a presentation mode specified in+--     'SwapchainPresentModesCreateInfoEXT'::pPresentModes when creating+--     the entry’s corresponding swapchain+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkSwapchainPresentModeInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT'+--+-- -   #VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-parameter#+--     @pPresentModes@ /must/ be a valid pointer to an array of+--     @swapchainCount@ valid+--     'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR' values+--+-- -   #VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-arraylength#+--     @swapchainCount@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1 VK_EXT_swapchain_maintenance1>,+-- 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SwapchainPresentModeInfoEXT = SwapchainPresentModeInfoEXT+  { -- | @pPresentModes@ is a list of presentation modes with @swapchainCount@+    -- entries.+    presentModes :: Vector PresentModeKHR }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SwapchainPresentModeInfoEXT)+#endif+deriving instance Show SwapchainPresentModeInfoEXT++instance ToCStruct SwapchainPresentModeInfoEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SwapchainPresentModeInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (presentModes)) :: Word32))+    pPPresentModes' <- ContT $ allocaBytes @PresentModeKHR ((Data.Vector.length (presentModes)) * 4)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPPresentModes' `plusPtr` (4 * (i)) :: Ptr PresentModeKHR) (e)) (presentModes)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR))) (pPPresentModes')+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct SwapchainPresentModeInfoEXT where+  peekCStruct p = do+    swapchainCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pPresentModes <- peek @(Ptr PresentModeKHR) ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR)))+    pPresentModes' <- generateM (fromIntegral swapchainCount) (\i -> peek @PresentModeKHR ((pPresentModes `advancePtrBytes` (4 * (i)) :: Ptr PresentModeKHR)))+    pure $ SwapchainPresentModeInfoEXT+             pPresentModes'++instance Zero SwapchainPresentModeInfoEXT where+  zero = SwapchainPresentModeInfoEXT+           mempty+++-- | VkSwapchainPresentScalingCreateInfoEXT - Scaling behavior when+-- presenting to the surface+--+-- = Description+--+-- If @presentScaling@ is @0@, the result of presenting a swapchain image+-- with dimensions that do not match the surface dimensions is+-- implementation and platform-dependent. If @presentGravityX@ or+-- @presentGravityY@ are @0@, the presentation gravity /must/ match that+-- defined by the native platform surface on platforms which define surface+-- gravity.+--+-- == Valid Usage+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07765#+--     If @presentGravityX@ is @0@, @presentGravityY@ /must/ be @0@+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07766#+--     If @presentGravityX@ is not @0@, @presentGravityY@ /must/ not be @0@+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentScaling-07767#+--     @presentScaling@ /must/ not have more than one bit set+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07768#+--     @presentGravityX@ /must/ not have more than one bit set+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07769#+--     @presentGravityY@ /must/ not have more than one bit set+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentScaling-07770#+--     @presentScaling@ /must/ be a valid scaling method for the surface as+--     returned in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentScaling@,+--     given+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@presentMode@+--     in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentScaling-07771#+--     If the swapchain is created with+--     'SwapchainPresentModesCreateInfoEXT', @presentScaling@ /must/ be a+--     valid scaling method for the surface as returned in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentScaling@,+--     given each present mode in+--     'SwapchainPresentModesCreateInfoEXT'::@pPresentModes@ in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07772#+--     @presentGravityX@ /must/ be a valid x-axis present gravity for the+--     surface as returned in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentGravityX@,+--     given+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@presentMode@+--     in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07773#+--     If the swapchain is created with+--     'SwapchainPresentModesCreateInfoEXT', @presentGravityX@ /must/ be a+--     valid x-axis present gravity for the surface as returned in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentGravityX@,+--     given each present mode in+--     'SwapchainPresentModesCreateInfoEXT'::@pPresentModes@ in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07774#+--     @presentGravityY@ /must/ be a valid y-axis present gravity for the+--     surface as returned in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentGravityY@,+--     given+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@presentMode@+--     in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07775#+--     If the swapchain is created with+--     'SwapchainPresentModesCreateInfoEXT', @presentGravityY@ /must/ be a+--     valid y-axis present gravity for the surface as returned in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentGravityY@,+--     given each present mode in+--     'SwapchainPresentModesCreateInfoEXT'::@pPresentModes@ in+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT'+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-parameter#+--     @scalingBehavior@ /must/ be a valid combination of+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.PresentScalingFlagBitsEXT'+--     values+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-parameter#+--     @presentGravityX@ /must/ be a valid combination of+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.PresentGravityFlagBitsEXT'+--     values+--+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-parameter#+--     @presentGravityY@ /must/ be a valid combination of+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.PresentGravityFlagBitsEXT'+--     values+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1 VK_EXT_swapchain_maintenance1>,+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.PresentGravityFlagsEXT',+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.PresentScalingFlagsEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SwapchainPresentScalingCreateInfoEXT = SwapchainPresentScalingCreateInfoEXT+  { -- No documentation found for Nested "VkSwapchainPresentScalingCreateInfoEXT" "scalingBehavior"+    scalingBehavior :: PresentScalingFlagsEXT+  , -- | @presentGravityX@ is @0@ or the x-axis direction in which swapchain+    -- image pixels gravitate relative to the surface when @presentScaling@+    -- does not result in a one-to-one pixel mapping between the scaled+    -- swapchain image and the surface.+    presentGravityX :: PresentGravityFlagsEXT+  , -- | @presentGravityY@ is @0@ or the y-axis direction in which swapchain+    -- image pixels gravitate relative to the surface when @presentScaling@+    -- does not result in a one-to-one pixel mapping between the scaled+    -- swapchain image and the surface.+    presentGravityY :: PresentGravityFlagsEXT+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SwapchainPresentScalingCreateInfoEXT)+#endif+deriving instance Show SwapchainPresentScalingCreateInfoEXT++instance ToCStruct SwapchainPresentScalingCreateInfoEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SwapchainPresentScalingCreateInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PresentScalingFlagsEXT)) (scalingBehavior)+    poke ((p `plusPtr` 20 :: Ptr PresentGravityFlagsEXT)) (presentGravityX)+    poke ((p `plusPtr` 24 :: Ptr PresentGravityFlagsEXT)) (presentGravityY)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct SwapchainPresentScalingCreateInfoEXT where+  peekCStruct p = do+    scalingBehavior <- peek @PresentScalingFlagsEXT ((p `plusPtr` 16 :: Ptr PresentScalingFlagsEXT))+    presentGravityX <- peek @PresentGravityFlagsEXT ((p `plusPtr` 20 :: Ptr PresentGravityFlagsEXT))+    presentGravityY <- peek @PresentGravityFlagsEXT ((p `plusPtr` 24 :: Ptr PresentGravityFlagsEXT))+    pure $ SwapchainPresentScalingCreateInfoEXT+             scalingBehavior presentGravityX presentGravityY++instance Storable SwapchainPresentScalingCreateInfoEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SwapchainPresentScalingCreateInfoEXT where+  zero = SwapchainPresentScalingCreateInfoEXT+           zero+           zero+           zero+++-- | VkReleaseSwapchainImagesInfoEXT - Structure describing a list of+-- swapchain image indices to be released+--+-- == Valid Usage+--+-- -   #VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07785# Each+--     element of @pImageIndices@ /must/ be the index of a presentable+--     image acquired from the swapchain specified by @swapchain@+--+-- -   #VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07786# All uses+--     of presentable images identified by elements of @pImageIndices@+--     /must/ have completed execution+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkReleaseSwapchainImagesInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT'+--+-- -   #VUID-VkReleaseSwapchainImagesInfoEXT-pNext-pNext# @pNext@ /must/ be+--     @NULL@+--+-- -   #VUID-VkReleaseSwapchainImagesInfoEXT-swapchain-parameter#+--     @swapchain@ /must/ be a valid+--     'Vulkan.Extensions.Handles.SwapchainKHR' handle+--+-- -   #VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-parameter#+--     @pImageIndices@ /must/ be a valid pointer to an array of+--     @imageIndexCount@ @uint32_t@ values+--+-- -   #VUID-VkReleaseSwapchainImagesInfoEXT-imageIndexCount-arraylength#+--     @imageIndexCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @swapchain@ /must/ be externally synchronized+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1 VK_EXT_swapchain_maintenance1>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Extensions.Handles.SwapchainKHR', 'releaseSwapchainImagesEXT'+data ReleaseSwapchainImagesInfoEXT = ReleaseSwapchainImagesInfoEXT+  { -- | @swapchain@ is a swapchain to which images are being released.+    swapchain :: SwapchainKHR+  , -- | @pImageIndices@ is a pointer to an array of indices into the array of+    -- @swapchain@’s presentable images, with @imageIndexCount@ entries.+    imageIndices :: Vector Word32+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ReleaseSwapchainImagesInfoEXT)+#endif+deriving instance Show ReleaseSwapchainImagesInfoEXT++instance ToCStruct ReleaseSwapchainImagesInfoEXT where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ReleaseSwapchainImagesInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr SwapchainKHR)) (swapchain)+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (imageIndices)) :: Word32))+    pPImageIndices' <- ContT $ allocaBytes @Word32 ((Data.Vector.length (imageIndices)) * 4)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPImageIndices' `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (imageIndices)+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr Word32))) (pPImageIndices')+    lift $ f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr SwapchainKHR)) (zero)+    f++instance FromCStruct ReleaseSwapchainImagesInfoEXT where+  peekCStruct p = do+    swapchain <- peek @SwapchainKHR ((p `plusPtr` 16 :: Ptr SwapchainKHR))+    imageIndexCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    pImageIndices <- peek @(Ptr Word32) ((p `plusPtr` 32 :: Ptr (Ptr Word32)))+    pImageIndices' <- generateM (fromIntegral imageIndexCount) (\i -> peek @Word32 ((pImageIndices `advancePtrBytes` (4 * (i)) :: Ptr Word32)))+    pure $ ReleaseSwapchainImagesInfoEXT+             swapchain pImageIndices'++instance Zero ReleaseSwapchainImagesInfoEXT where+  zero = ReleaseSwapchainImagesInfoEXT+           zero+           mempty+++type EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION"+pattern EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1+++type EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1"++-- No documentation found for TopLevel "VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME"+pattern EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1"+
+ src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot view
@@ -0,0 +1,242 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_swapchain_maintenance1 - device extension+--+-- == VK_EXT_swapchain_maintenance1+--+-- [__Name String__]+--     @VK_EXT_swapchain_maintenance1@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     276+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_swapchain@ to be enabled for any device-level+--         functionality+--+--     -   Requires @VK_EXT_surface_maintenance1@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Shahbaz Youssefi+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_swapchain_maintenance1] @syoussefi%0A*Here describe the issue or question you have about the VK_EXT_swapchain_maintenance1 extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_swapchain_maintenance1.adoc VK_EXT_swapchain_maintenance1>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-10-28+--+-- [__Contributors__]+--+--     -   Jeff Juliano, NVIDIA+--+--     -   Shahbaz Youssefi, Google+--+--     -   Chris Forbes, Google+--+--     -   Ian Elliott, Google+--+--     -   Yiwei Zhang, Google+--+--     -   Charlie Lao, Google+--+--     -   Chad Versace, Google+--+--     -   Ralph Potter, Samsung+--+--     -   Igor Nazarov, Samsung+--+--     -   Hyunchang Kim, Samsung+--+--     -   Suenghwan Lee, Samsung+--+--     -   Munseong Kang, Samsung+--+--     -   Joonyong Park, Samsung+--+--     -   Hans-Kristian Arntzen, Valve+--+--     -   Lisa Wu, Arm+--+--     -   Daniel Stone, Collabora+--+--     -   Pan Gao, Huawei+--+-- == Description+--+-- @VK_EXT_swapchain_maintenance1@ adds a collection of window system+-- integration features that were intentionally left out or overlooked in+-- the original @VK_KHR_swapchain@ extension.+--+-- The new features are as follows:+--+-- -   Specify a fence that will be signaled when the resources associated+--     with a present operation /can/ be safely destroyed.+--+-- -   Allow changing the present mode a swapchain is using at per-present+--     granularity.+--+-- -   Allow applications to define the behavior when presenting a+--     swapchain image to a surface with different dimensions than the+--     image. Using this feature /may/ allow implementations to avoid+--     returning 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR' in this+--     situation.+--+-- -   Allow applications to defer swapchain memory allocation for improved+--     startup time and memory footprint.+--+-- -   Allow applications to release previously acquired images without+--     presenting them.+--+-- == New Commands+--+-- -   'releaseSwapchainImagesEXT'+--+-- == New Structures+--+-- -   'ReleaseSwapchainImagesInfoEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceSwapchainMaintenance1FeaturesEXT'+--+-- -   Extending 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR':+--+--     -   'SwapchainPresentFenceInfoEXT'+--+--     -   'SwapchainPresentModeInfoEXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR':+--+--     -   'SwapchainPresentModesCreateInfoEXT'+--+--     -   'SwapchainPresentScalingCreateInfoEXT'+--+-- == New Enum Constants+--+-- -   'EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME'+--+-- -   'EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateFlagBitsKHR':+--+--     -   'Vulkan.Extensions.VK_KHR_swapchain.SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT'+--+-- == Version History+--+-- -   Revision 0, 2019-05-28+--+--     -   Initial revisions+--+-- -   Revision 1, 2022-08-21 (Shahbaz Youssefi)+--+--     -   Add functionality and complete spec+--+-- == See Also+--+-- 'PhysicalDeviceSwapchainMaintenance1FeaturesEXT',+-- 'ReleaseSwapchainImagesInfoEXT', 'SwapchainPresentFenceInfoEXT',+-- 'SwapchainPresentModeInfoEXT', 'SwapchainPresentModesCreateInfoEXT',+-- 'SwapchainPresentScalingCreateInfoEXT', 'releaseSwapchainImagesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_swapchain_maintenance1  ( PhysicalDeviceSwapchainMaintenance1FeaturesEXT+                                                        , ReleaseSwapchainImagesInfoEXT+                                                        , SwapchainPresentFenceInfoEXT+                                                        , SwapchainPresentModeInfoEXT+                                                        , SwapchainPresentModesCreateInfoEXT+                                                        , SwapchainPresentScalingCreateInfoEXT+                                                        ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceSwapchainMaintenance1FeaturesEXT++instance ToCStruct PhysicalDeviceSwapchainMaintenance1FeaturesEXT+instance Show PhysicalDeviceSwapchainMaintenance1FeaturesEXT++instance FromCStruct PhysicalDeviceSwapchainMaintenance1FeaturesEXT+++data ReleaseSwapchainImagesInfoEXT++instance ToCStruct ReleaseSwapchainImagesInfoEXT+instance Show ReleaseSwapchainImagesInfoEXT++instance FromCStruct ReleaseSwapchainImagesInfoEXT+++data SwapchainPresentFenceInfoEXT++instance ToCStruct SwapchainPresentFenceInfoEXT+instance Show SwapchainPresentFenceInfoEXT++instance FromCStruct SwapchainPresentFenceInfoEXT+++data SwapchainPresentModeInfoEXT++instance ToCStruct SwapchainPresentModeInfoEXT+instance Show SwapchainPresentModeInfoEXT++instance FromCStruct SwapchainPresentModeInfoEXT+++data SwapchainPresentModesCreateInfoEXT++instance ToCStruct SwapchainPresentModesCreateInfoEXT+instance Show SwapchainPresentModesCreateInfoEXT++instance FromCStruct SwapchainPresentModesCreateInfoEXT+++data SwapchainPresentScalingCreateInfoEXT++instance ToCStruct SwapchainPresentScalingCreateInfoEXT+instance Show SwapchainPresentScalingCreateInfoEXT++instance FromCStruct SwapchainPresentScalingCreateInfoEXT+
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -1847,7 +1847,8 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-06887# If the current --     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the stencil aspect and stencil test is enabled,+--     read-only layout for the stencil aspect, both front and back+--     @writeMask@ are not zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs view
@@ -322,11 +322,9 @@ -- swapchain creation will fail with the result code -- 'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_DISPLAY_KHR'. If any -- error occurs, no swapchains will be created. Images presented to--- multiple swapchains /must/ be re-acquired from all of them before--- transitioning away from--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'. After--- destroying one or more of the swapchains, the remaining swapchains and--- the presentable images /can/ continue to be used.+-- multiple swapchains /must/ be re-acquired from all of them before being+-- modified. After destroying one or more of the swapchains, the remaining+-- swapchains and the presentable images /can/ continue to be used. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs view
@@ -228,6 +228,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveWin32InfoEXT) import Vulkan.Extensions.Handles (SurfaceKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_surface_maintenance1 (SurfacePresentModeCompatibilityEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_surface_maintenance1 (SurfacePresentModeEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_surface_maintenance1 (SurfacePresentScalingCapabilitiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface_protected_capabilities (SurfaceProtectedCapabilitiesKHR) import Vulkan.Exception (VulkanException(..)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR))@@ -262,13 +265,15 @@ -- -- == Valid Usage ----- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06520#+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06521#+--     If the @VK_GOOGLE_surfaceless_query@ extension is not enabled, --     @pSurfaceInfo->surface@ /must/ be a valid --     'Vulkan.Extensions.Handles.SurfaceKHR' handle ----- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06210#---     @pSurfaceInfo->surface@ /must/ be supported by @physicalDevice@, as---     reported by+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06522#+--     If @pSurfaceInfo->surface@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be supported by+--     @physicalDevice@, as reported by --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR' --     or an equivalent platform-specific mechanism --@@ -279,6 +284,32 @@ --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT' --     structure /must/ be included in the @pNext@ chain of @pSurfaceInfo@ --+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07776# If a+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT'+--     structure is included in the @pNext@ chain of+--     @pSurfaceCapabilities@, a+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'+--     structure /must/ be included in the @pNext@ chain of @pSurfaceInfo@+--+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07777# If a+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'+--     structure is included in the @pNext@ chain of+--     @pSurfaceCapabilities@, a+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'+--     structure /must/ be included in the @pNext@ chain of @pSurfaceInfo@+--+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07778# If a+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT'+--     structure is included in the @pNext@ chain of+--     @pSurfaceCapabilities@, @pSurfaceInfo->surface@ /must/ be a valid+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle+--+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07779# If a+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'+--     structure is included in the @pNext@ chain of+--     @pSurfaceCapabilities@, @pSurfaceInfo->surface@ /must/ be a valid+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter#@@ -544,9 +575,10 @@ -- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-pNext# Each @pNext@ --     member of any structure (including this one) in the @pNext@ chain --     /must/ be either @NULL@ or a pointer to a valid instance of---     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveInfoEXT'+--     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveInfoEXT',+--     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT', --     or---     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT'+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT' -- -- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-unique# The @sType@ --     value of each struct in the @pNext@ chain /must/ be unique@@ -582,6 +614,7 @@   getNext PhysicalDeviceSurfaceInfo2KHR{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceSurfaceInfo2KHR e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @SurfacePresentModeEXT = Just f     | Just Refl <- eqT @e @SurfaceFullScreenExclusiveWin32InfoEXT = Just f     | Just Refl <- eqT @e @SurfaceFullScreenExclusiveInfoEXT = Just f     | otherwise = Nothing@@ -650,6 +683,8 @@ --     'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR', --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT', --     'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV',+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT',+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT', --     or --     'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR' --@@ -682,6 +717,8 @@   getNext SurfaceCapabilities2KHR{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SurfaceCapabilities2KHR e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @SurfacePresentModeCompatibilityEXT = Just f+    | Just Refl <- eqT @e @SurfacePresentScalingCapabilitiesEXT = Just f     | Just Refl <- eqT @e @SurfaceCapabilitiesPresentBarrierNV = Just f     | Just Refl <- eqT @e @SurfaceCapabilitiesFullScreenExclusiveEXT = Just f     | Just Refl <- eqT @e @SurfaceProtectedCapabilitiesKHR = Just f
src/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -1282,7 +1282,11 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>,+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT',+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModeInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT', -- 'getPhysicalDeviceSurfacePresentModesKHR' newtype PresentModeKHR = PresentModeKHR Int32
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -1102,7 +1102,8 @@                                                                               , ..                                                                               )                                            , SwapchainCreateFlagsKHR-                                           , SwapchainCreateFlagBitsKHR( SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR+                                           , SwapchainCreateFlagBitsKHR( SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT+                                                                       , SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR                                                                        , SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR                                                                        , SWAPCHAIN_CREATE_PROTECTED_BIT_KHR                                                                        , ..@@ -1247,6 +1248,10 @@ import Vulkan.Extensions.Handles (SwapchainKHR) import Vulkan.Extensions.Handles (SwapchainKHR(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SwapchainPresentBarrierCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentFenceInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentModeInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentModesCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentScalingCreateInfoEXT) import Vulkan.Exception (VulkanException(..)) import Vulkan.Core10.APIConstants (pattern MAX_DEVICE_GROUP_SIZE) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR))@@ -1756,6 +1761,15 @@ -- | vkAcquireNextImageKHR - Retrieve the index of the next available -- presentable image --+-- = Description+--+-- If the @swapchain@ has been created with the+-- 'SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT' flag, the image+-- whose index is returned in @pImageIndex@ will be fully backed by memory+-- before this call returns to the application, as if it is bound+-- completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object.+-- -- == Valid Usage -- -- -   #VUID-vkAcquireNextImageKHR-swapchain-01285# @swapchain@ /must/ not@@ -1776,14 +1790,11 @@ -- -   #VUID-vkAcquireNextImageKHR-semaphore-01780# @semaphore@ and @fence@ --     /must/ not both be equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' ----- -   #VUID-vkAcquireNextImageKHR-swapchain-01802# If the number of---     currently acquired images is greater than the difference between the---     number of images in @swapchain@ and the value of---     'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@minImageCount@---     as returned by a call to---     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR'---     with the @surface@ used to create @swapchain@, @timeout@ /must/ not---     be @UINT64_MAX@+-- -   #VUID-vkAcquireNextImageKHR-surface-07783# If+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-acquire-forward-progress forward progress>+--     cannot be guaranteed for the @surface@ used to create the+--     @swapchain@ member of @pAcquireInfo@, the @timeout@ member of+--     @pAcquireInfo@ /must/ not be @UINT64_MAX@ -- -- -   #VUID-vkAcquireNextImageKHR-semaphore-03265# @semaphore@ /must/ have --     a 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of@@ -2262,17 +2273,19 @@ -- | vkAcquireNextImage2KHR - Retrieve the index of the next available -- presentable image --+-- = Description+--+-- If the @swapchain@ has been created with the+-- 'SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT' flag, the image+-- whose index is returned in @pImageIndex@ will be fully backed by memory+-- before this call returns to the application.+-- -- == Valid Usage ----- -   #VUID-vkAcquireNextImage2KHR-swapchain-01803# If the number of---     currently acquired images is greater than the difference between the---     number of images in the @swapchain@ member of @pAcquireInfo@ and the---     value of---     'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@minImageCount@---     as returned by a call to---     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR'---     with the @surface@ used to create @swapchain@, the @timeout@ member---     of @pAcquireInfo@ /must/ not be @UINT64_MAX@+-- -   #VUID-vkAcquireNextImage2KHR-surface-07784# If+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-acquire-forward-progress forward progress>+--     cannot be guaranteed for the @surface@ used to create @swapchain@,+--     the @timeout@ member of @pAcquireInfo@ /must/ not be @UINT64_MAX@ -- -- == Valid Usage (Implicit) --@@ -2540,14 +2553,31 @@ --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceFormatsKHR' --     for the surface ----- -   #VUID-VkSwapchainCreateInfoKHR-imageExtent-01274# @imageExtent@---     /must/ be between @minImageExtent@ and @maxImageExtent@, inclusive,---     where @minImageExtent@ and @maxImageExtent@ are members of the+-- -   #VUID-VkSwapchainCreateInfoKHR-pNext-07781# If a+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT'+--     structure was not included in the @pNext@ chain, or it is included+--     and+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT'::@scalingBehavior@+--     is zero then @imageExtent@ /must/ be between @minImageExtent@ and+--     @maxImageExtent@, inclusive, where @minImageExtent@ and+--     @maxImageExtent@ are members of the --     'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR' structure --     returned by --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR' --     for the surface --+-- -   #VUID-VkSwapchainCreateInfoKHR-pNext-07782# If a+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT'+--     structure was included in the @pNext@ chain and+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT'::@scalingBehavior@+--     is not zero then @imageExtent@ /must/ be between+--     @minScaledImageExtent@ and @maxScaledImageExtent@, inclusive, where+--     @minScaledImageExtent@ and @maxScaledImageExtent@ are members of the+--     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'+--     structure returned by+--     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR'+--     for the surface and @presentMode@+-- -- -   #VUID-VkSwapchainCreateInfoKHR-imageExtent-01689# @imageExtent@ --     members @width@ and @height@ /must/ both be non-zero --@@ -2705,8 +2735,10 @@ --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT', --     'Vulkan.Extensions.VK_EXT_display_control.SwapchainCounterCreateInfoEXT', --     'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD',+--     'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV',+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT', --     or---     'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV'+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT' -- -- -   #VUID-VkSwapchainCreateInfoKHR-sType-unique# The @sType@ value of --     each struct in the @pNext@ chain /must/ be unique@@ -2804,7 +2836,9 @@     -- On some platforms, it is normal that @maxImageExtent@ /may/ become     -- @(0, 0)@, for example when the window is minimized. In such a case, it     -- is not possible to create a swapchain due to the Valid Usage-    -- requirements.+    -- requirements , unless scaling is selected through+    -- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT',+    -- if supported .     imageExtent :: Extent2D   , -- | @imageArrayLayers@ is the number of views in a multiview\/stereo     -- surface. For non-stereoscopic-3D applications, this value is 1.@@ -2885,6 +2919,8 @@   getNext SwapchainCreateInfoKHR{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SwapchainCreateInfoKHR e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @SwapchainPresentScalingCreateInfoEXT = Just f+    | Just Refl <- eqT @e @SwapchainPresentModesCreateInfoEXT = Just f     | Just Refl <- eqT @e @ImageCompressionControlEXT = Just f     | Just Refl <- eqT @e @SwapchainPresentBarrierCreateInfoNV = Just f     | Just Refl <- eqT @e @SurfaceFullScreenExclusiveWin32InfoEXT = Just f@@ -3056,8 +3092,11 @@ --     'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR', --     'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP', --     'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR',---     'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR', or---     'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE'+--     'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR',+--     'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE',+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentFenceInfoEXT',+--     or+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModeInfoEXT' -- -- -   #VUID-VkPresentInfoKHR-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique@@ -3131,6 +3170,8 @@   getNext PresentInfoKHR{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PresentInfoKHR e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @SwapchainPresentModeInfoEXT = Just f+    | Just Refl <- eqT @e @SwapchainPresentFenceInfoEXT = Just f     | Just Refl <- eqT @e @PresentFrameTokenGGP = Just f     | Just Refl <- eqT @e @PresentTimesInfoGOOGLE = Just f     | Just Refl <- eqT @e @PresentIdKHR = Just f@@ -3362,6 +3403,12 @@ -- -   #VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644# --     @imageIndex@ /must/ be less than the number of images in @swapchain@ --+-- -   #VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-07756# If the+--     @swapchain@ has been created with+--     'SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT', @imageIndex@+--     /must/ be one that has previously been returned by+--     'acquireNextImageKHR' or 'acquireNextImage2KHR'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkBindImageMemorySwapchainInfoKHR-sType-sType# @sType@ /must/@@ -3888,6 +3935,12 @@ newtype SwapchainCreateFlagBitsKHR = SwapchainCreateFlagBitsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) +-- | 'SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT' specifies that the+-- implementation /may/ defer allocation of memory associated with each+-- swapchain image until its index is to be returned from+-- 'acquireNextImageKHR' or 'acquireNextImage2KHR' for the first time.+pattern SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = SwapchainCreateFlagBitsKHR 0x00000008+ -- | 'SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR' specifies that the images of -- the swapchain /can/ be used to create a -- 'Vulkan.Core10.Handles.ImageView' with a different format than what the@@ -3920,6 +3973,10 @@ showTableSwapchainCreateFlagBitsKHR :: [(SwapchainCreateFlagBitsKHR, String)] showTableSwapchainCreateFlagBitsKHR =   [+    ( SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT+    , "DEFERRED_MEMORY_ALLOCATION_BIT_EXT"+    )+  ,     ( SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR     , "MUTABLE_FORMAT_BIT_KHR"     )
src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs view
@@ -56,7 +56,7 @@ -- -- == New Function Pointers ----- -   'PFN_vkGetInstanceProcAddr'+-- -   'PFN_vkGetInstanceProcAddrLUNARG' -- -- == New Enums --@@ -86,7 +86,7 @@ -- -- == See Also ----- 'PFN_vkGetInstanceProcAddr', 'DirectDriverLoadingFlagsLUNARG',+-- 'PFN_vkGetInstanceProcAddrLUNARG', 'DirectDriverLoadingFlagsLUNARG', -- 'DirectDriverLoadingInfoLUNARG', 'DirectDriverLoadingListLUNARG', -- 'DirectDriverLoadingModeLUNARG' --@@ -104,8 +104,8 @@                                                                                          , DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG                                                                                          , ..                                                                                          )-                                                          , PFN_vkGetInstanceProcAddr-                                                          , FN_vkGetInstanceProcAddr+                                                          , PFN_vkGetInstanceProcAddrLUNARG+                                                          , FN_vkGetInstanceProcAddrLUNARG                                                           , LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION                                                           , pattern LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION                                                           , LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME@@ -165,16 +165,20 @@ -- -- = See Also ----- 'PFN_vkGetInstanceProcAddr',+-- 'PFN_vkGetInstanceProcAddrLUNARG', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loading VK_LUNARG_direct_driver_loading>, -- 'DirectDriverLoadingFlagsLUNARG', 'DirectDriverLoadingListLUNARG', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data DirectDriverLoadingInfoLUNARG = DirectDriverLoadingInfoLUNARG-  { -- | #VUID-VkDirectDriverLoadingInfoLUNARG-flags-zerobitmask# @flags@ /must/+  { -- | @flags@ is reserved for future use.+    --+    -- #VUID-VkDirectDriverLoadingInfoLUNARG-flags-zerobitmask# @flags@ /must/     -- be @0@     flags :: DirectDriverLoadingFlagsLUNARG-  , -- No documentation found for Nested "VkDirectDriverLoadingInfoLUNARG" "pfnGetInstanceProcAddr"-    pfnGetInstanceProcAddr :: PFN_vkGetInstanceProcAddr+  , -- | @pfnGetInstanceProcAddr@ is a 'PFN_vkGetInstanceProcAddrLUNARG' pointer+    -- to the driver 'Vulkan.Core10.DeviceInitialization.getInstanceProcAddr'+    -- function.+    pfnGetInstanceProcAddr :: PFN_vkGetInstanceProcAddrLUNARG   }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -188,7 +192,7 @@     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr DirectDriverLoadingFlagsLUNARG)) (flags)-    poke ((p `plusPtr` 24 :: Ptr PFN_vkGetInstanceProcAddr)) (pfnGetInstanceProcAddr)+    poke ((p `plusPtr` 24 :: Ptr PFN_vkGetInstanceProcAddrLUNARG)) (pfnGetInstanceProcAddr)     f   cStructSize = 32   cStructAlignment = 8@@ -196,13 +200,13 @@     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr DirectDriverLoadingFlagsLUNARG)) (zero)-    poke ((p `plusPtr` 24 :: Ptr PFN_vkGetInstanceProcAddr)) (zero)+    poke ((p `plusPtr` 24 :: Ptr PFN_vkGetInstanceProcAddrLUNARG)) (zero)     f  instance FromCStruct DirectDriverLoadingInfoLUNARG where   peekCStruct p = do     flags <- peek @DirectDriverLoadingFlagsLUNARG ((p `plusPtr` 16 :: Ptr DirectDriverLoadingFlagsLUNARG))-    pfnGetInstanceProcAddr <- peek @PFN_vkGetInstanceProcAddr ((p `plusPtr` 24 :: Ptr PFN_vkGetInstanceProcAddr))+    pfnGetInstanceProcAddr <- peek @PFN_vkGetInstanceProcAddrLUNARG ((p `plusPtr` 24 :: Ptr PFN_vkGetInstanceProcAddrLUNARG))     pure $ DirectDriverLoadingInfoLUNARG              flags pfnGetInstanceProcAddr @@ -221,6 +225,15 @@ -- | VkDirectDriverLoadingListLUNARG - Structure specifying additional -- drivers to load --+-- = Description+--+-- When creating a Vulkan instance for which additional drivers are to be+-- included, add a 'DirectDriverLoadingListLUNARG' structure to the pNext+-- chain of the 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo'+-- structure, and include in it the list of 'DirectDriverLoadingInfoLUNARG'+-- structures which contain the information necessary to load additional+-- drivers.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -229,10 +242,15 @@ -- 'DirectDriverLoadingInfoLUNARG', 'DirectDriverLoadingModeLUNARG', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data DirectDriverLoadingListLUNARG = DirectDriverLoadingListLUNARG-  { -- | #VUID-VkDirectDriverLoadingListLUNARG-mode-parameter# @mode@ /must/ be a+  { -- | @mode@ controls the mode in which to load the provided drivers.+    --+    -- #VUID-VkDirectDriverLoadingListLUNARG-mode-parameter# @mode@ /must/ be a     -- valid 'DirectDriverLoadingModeLUNARG' value     mode :: DirectDriverLoadingModeLUNARG-  , -- | #VUID-VkDirectDriverLoadingListLUNARG-pDrivers-parameter# @pDrivers@+  , -- | @pDrivers@ is a pointer to an array of @driverCount@+    -- 'DirectDriverLoadingInfoLUNARG' structures.+    --+    -- #VUID-VkDirectDriverLoadingListLUNARG-pDrivers-parameter# @pDrivers@     -- /must/ be a valid pointer to an array of @driverCount@ valid     -- 'DirectDriverLoadingInfoLUNARG' structures     drivers :: Vector DirectDriverLoadingInfoLUNARG@@ -327,10 +345,12 @@ newtype DirectDriverLoadingModeLUNARG = DirectDriverLoadingModeLUNARG Int32   deriving newtype (Eq, Ord, Storable, Zero) --- No documentation found for Nested "VkDirectDriverLoadingModeLUNARG" "VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG"+-- | 'DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG' specifies that the+-- provided drivers are used instead of the system-loaded drivers. pattern DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = DirectDriverLoadingModeLUNARG 0 --- No documentation found for Nested "VkDirectDriverLoadingModeLUNARG" "VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG"+-- | 'DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG' specifies that the+-- provided drivers are used in addition to the system-loaded drivers. pattern DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = DirectDriverLoadingModeLUNARG 1  {-# COMPLETE@@ -374,14 +394,29 @@       conNameDirectDriverLoadingModeLUNARG       DirectDriverLoadingModeLUNARG -type FN_vkGetInstanceProcAddr = Ptr Instance_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction--- | PFN_vkGetInstanceProcAddr - Type definition for vkGetInstanceProcAddr+type FN_vkGetInstanceProcAddrLUNARG = Ptr Instance_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction+-- | PFN_vkGetInstanceProcAddrLUNARG - Type definition for+-- vkGetInstanceProcAddr --+-- = Description+--+-- This type is compatible with the type of a pointer to the+-- 'Vulkan.Core10.DeviceInitialization.getInstanceProcAddr' command, but is+-- used only to specify device driver addresses in+-- 'DirectDriverLoadingInfoLUNARG'::@pfnGetInstanceProcAddr@.+--+-- Note+--+-- This type exists only because of limitations in the XML schema and+-- processing scripts, and its name may change in the future. Ideally we+-- would use the @PFN_vkGetInstanceProcAddr@ type generated in the+-- @vulkan_core.h@ header.+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loading VK_LUNARG_direct_driver_loading>, -- 'DirectDriverLoadingInfoLUNARG'-type PFN_vkGetInstanceProcAddr = FunPtr FN_vkGetInstanceProcAddr+type PFN_vkGetInstanceProcAddrLUNARG = FunPtr FN_vkGetInstanceProcAddrLUNARG   type LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1
src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot view
@@ -56,7 +56,7 @@ -- -- == New Function Pointers ----- -   'PFN_vkGetInstanceProcAddr'+-- -   'PFN_vkGetInstanceProcAddrLUNARG' -- -- == New Enums --@@ -86,7 +86,7 @@ -- -- == See Also ----- 'PFN_vkGetInstanceProcAddr', 'DirectDriverLoadingFlagsLUNARG',+-- 'PFN_vkGetInstanceProcAddrLUNARG', 'DirectDriverLoadingFlagsLUNARG', -- 'DirectDriverLoadingInfoLUNARG', 'DirectDriverLoadingListLUNARG', -- 'DirectDriverLoadingModeLUNARG' --
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -1178,7 +1178,8 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-06887# If the current --     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the stencil aspect and stencil test is enabled,+--     read-only layout for the stencil aspect, both front and back+--     @writeMask@ are not zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -804,7 +804,8 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-06887# If the current render pass --     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,+--     for the stencil aspect, both front and back @writeMask@ are not+--     zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -2536,7 +2537,8 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06887# If the current render --     pass instance uses a depth\/stencil attachment with a read-only---     layout for the stencil aspect and stencil test is enabled,+--     layout for the stencil aspect, both front and back @writeMask@ are+--     not zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --@@ -4319,7 +4321,8 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887# If the current --     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the stencil aspect and stencil test is enabled,+--     read-only layout for the stencil aspect, both front and back+--     @writeMask@ are not zero, and stencil test is enabled, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops> --     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' --
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 236+pattern HEADER_VERSION = 237   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 236+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 237   pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.24.1+version:        3.24.2 synopsis:       Bindings to the Vulkan graphics API. description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category:       Graphics@@ -409,7 +409,9 @@       Vulkan.Extensions.VK_EXT_shader_viewport_index_layer       Vulkan.Extensions.VK_EXT_subgroup_size_control       Vulkan.Extensions.VK_EXT_subpass_merge_feedback+      Vulkan.Extensions.VK_EXT_surface_maintenance1       Vulkan.Extensions.VK_EXT_swapchain_colorspace+      Vulkan.Extensions.VK_EXT_swapchain_maintenance1       Vulkan.Extensions.VK_EXT_texel_buffer_alignment       Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr       Vulkan.Extensions.VK_EXT_tooling_info