vulkan 3.24.1 → 3.24.2
raw patch · 37 files changed
+2521/−90 lines, 37 files
Files
- changelog.md +3/−0
- package.yaml +1/−1
- src/Vulkan/CStruct/Extends.hs +34/−0
- src/Vulkan/Core10/CommandBufferBuilding.hs +14/−9
- src/Vulkan/Core10/Device.hs +3/−0
- src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs +3/−1
- src/Vulkan/Core10/Enums/ImageLayout.hs +1/−5
- src/Vulkan/Core10/Enums/StructureType.hs +90/−0
- src/Vulkan/Core10/FundamentalTypes.hs +2/−0
- src/Vulkan/Core10/Handles.hs +2/−0
- src/Vulkan/Core10/Image.hs +4/−0
- src/Vulkan/Core10/Pipeline.hs +2/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +2/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +4/−2
- src/Vulkan/Dynamic.hs +5/−1
- src/Vulkan/Extensions.hs +4/−0
- src/Vulkan/Extensions/Dependencies.hs +13/−0
- src/Vulkan/Extensions/Handles.hs +6/−1
- src/Vulkan/Extensions/VK_EXT_mesh_shader.hs +6/−3
- src/Vulkan/Extensions/VK_EXT_multi_draw.hs +4/−2
- src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs +3/−0
- src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot +3/−0
- src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs +663/−0
- src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot +168/−0
- src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs +1037/−0
- src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot +242/−0
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +2/−1
- src/Vulkan/Extensions/VK_KHR_display_swapchain.hs +3/−5
- src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs +43/−6
- src/Vulkan/Extensions/VK_KHR_surface.hs +4/−0
- src/Vulkan/Extensions/VK_KHR_swapchain.hs +82/−25
- src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs +53/−18
- src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +2/−1
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +6/−3
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +3/−1
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