packages feed

vulkan 3.11.2 → 3.11.3

raw patch · 118 files changed

+2903/−412 lines, 118 files

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.11.3] - 2021-07-21+- Bump API version to v1.2.185+ ## [3.11.2] - 2021-07-07 - Bump API version to v1.2.184 
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.11.2"+version: "3.11.3" 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
@@ -412,6 +412,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT)@@ -436,6 +437,8 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2)@@ -457,6 +460,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)@@ -552,6 +556,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (PipelineViewportSwizzleStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (PipelineViewportWScalingStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_GGP_frame_token (PresentFrameTokenGGP)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PresentIdKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (PresentInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionsKHR)@@ -821,6 +826,8 @@   Extends DeviceCreateInfo PhysicalDeviceVariablePointersFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceMultiviewFeatures = ()   Extends DeviceCreateInfo DeviceGroupDeviceCreateInfo = ()+  Extends DeviceCreateInfo PhysicalDevicePresentIdFeaturesKHR = ()+  Extends DeviceCreateInfo PhysicalDevicePresentWaitFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDevice16BitStorageFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceShaderSubgroupExtendedTypesFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceSamplerYcbcrConversionFeatures = ()@@ -841,6 +848,7 @@   Extends DeviceCreateInfo PhysicalDeviceVulkanMemoryModelFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceShaderAtomicInt64Features = ()   Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloat2FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceASTCDecodeFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceTransformFeedbackFeaturesEXT = ()@@ -852,6 +860,7 @@   Extends DeviceCreateInfo PhysicalDeviceShaderImageFootprintFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceShadingRateImageFeaturesNV = ()+  Extends DeviceCreateInfo PhysicalDeviceInvocationMaskFeaturesHUAWEI = ()   Extends DeviceCreateInfo PhysicalDeviceMeshShaderFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceAccelerationStructureFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceRayTracingPipelineFeaturesKHR = ()@@ -969,6 +978,8 @@   Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceVariablePointersFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewFeatures = ()+  Extends PhysicalDeviceFeatures2 PhysicalDevicePresentIdFeaturesKHR = ()+  Extends PhysicalDeviceFeatures2 PhysicalDevicePresentWaitFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDevice16BitStorageFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderSubgroupExtendedTypesFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceSamplerYcbcrConversionFeatures = ()@@ -988,6 +999,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkanMemoryModelFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicInt64Features = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloat2FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceASTCDecodeFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceTransformFeedbackFeaturesEXT = ()@@ -999,6 +1011,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageFootprintFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShadingRateImageFeaturesNV = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceInvocationMaskFeaturesHUAWEI = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceMeshShaderFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceAccelerationStructureFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingPipelineFeaturesKHR = ()@@ -1136,6 +1149,7 @@   Extends PresentInfoKHR DisplayPresentInfoKHR = ()   Extends PresentInfoKHR PresentRegionsKHR = ()   Extends PresentInfoKHR DeviceGroupPresentInfoKHR = ()+  Extends PresentInfoKHR PresentIdKHR = ()   Extends PresentInfoKHR PresentTimesInfoGOOGLE = ()   Extends PresentInfoKHR PresentFrameTokenGGP = ()   Extends QueryPoolCreateInfo QueryPoolPerformanceCreateInfoKHR = ()@@ -1345,6 +1359,9 @@   STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR -> go @DeviceGroupPresentInfoKHR   STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO -> go @DeviceGroupDeviceCreateInfo   STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR -> go @DeviceGroupSwapchainCreateInfoKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR -> go @PhysicalDevicePresentIdFeaturesKHR+  STRUCTURE_TYPE_PRESENT_ID_KHR -> go @PresentIdKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR -> go @PhysicalDevicePresentWaitFeaturesKHR   STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD -> go @DisplayNativeHdrSurfaceCapabilitiesAMD   STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD -> go @SwapchainDisplayNativeHdrCreateInfoAMD   STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE -> go @PresentTimesInfoGOOGLE@@ -1429,6 +1446,7 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES -> go @PhysicalDeviceVulkanMemoryModelFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES -> go @PhysicalDeviceShaderAtomicInt64Features   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT -> go @PhysicalDeviceShaderAtomicFloatFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT -> go @PhysicalDeviceShaderAtomicFloat2FeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT -> go @PhysicalDeviceVertexAttributeDivisorFeaturesEXT   STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV -> go @QueueFamilyCheckpointPropertiesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES -> go @PhysicalDeviceDepthStencilResolveProperties@@ -1450,6 +1468,7 @@   STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV -> go @PipelineViewportShadingRateImageStateCreateInfoNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV -> go @PhysicalDeviceShadingRateImageFeaturesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV -> go @PhysicalDeviceShadingRateImagePropertiesNV+  STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI -> go @PhysicalDeviceInvocationMaskFeaturesHUAWEI   STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV -> go @PipelineViewportCoarseSampleOrderStateCreateInfoNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV -> go @PhysicalDeviceMeshShaderFeaturesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV -> go @PhysicalDeviceMeshShaderPropertiesNV@@ -1688,6 +1707,9 @@ {-# complete (::&) :: DeviceGroupPresentInfoKHR #-} {-# complete (::&) :: DeviceGroupDeviceCreateInfo #-} {-# complete (::&) :: DeviceGroupSwapchainCreateInfoKHR #-}+{-# complete (::&) :: PhysicalDevicePresentIdFeaturesKHR #-}+{-# complete (::&) :: PresentIdKHR #-}+{-# complete (::&) :: PhysicalDevicePresentWaitFeaturesKHR #-} {-# complete (::&) :: DisplayNativeHdrSurfaceCapabilitiesAMD #-} {-# complete (::&) :: SwapchainDisplayNativeHdrCreateInfoAMD #-} {-# complete (::&) :: PresentTimesInfoGOOGLE #-}@@ -1772,6 +1794,7 @@ {-# complete (::&) :: PhysicalDeviceVulkanMemoryModelFeatures #-} {-# complete (::&) :: PhysicalDeviceShaderAtomicInt64Features #-} {-# complete (::&) :: PhysicalDeviceShaderAtomicFloatFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorFeaturesEXT #-} {-# complete (::&) :: QueueFamilyCheckpointPropertiesNV #-} {-# complete (::&) :: PhysicalDeviceDepthStencilResolveProperties #-}@@ -1793,6 +1816,7 @@ {-# complete (::&) :: PipelineViewportShadingRateImageStateCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceShadingRateImageFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceShadingRateImagePropertiesNV #-}+{-# complete (::&) :: PhysicalDeviceInvocationMaskFeaturesHUAWEI #-} {-# complete (::&) :: PipelineViewportCoarseSampleOrderStateCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceMeshShaderFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceMeshShaderPropertiesNV #-}
src/Vulkan/Core10/CommandBuffer.hs view
@@ -728,10 +728,9 @@     -- If the 'Vulkan.Core10.Handles.CommandBuffer' will not be executed within     -- a render pass instance, @subpass@ is ignored.     subpass :: Word32-  , -- | @framebuffer@ optionally refers to the-    -- 'Vulkan.Core10.Handles.Framebuffer' object that the-    -- 'Vulkan.Core10.Handles.CommandBuffer' will be rendering to if it is-    -- executed within a render pass instance. It /can/ be+  , -- | @framebuffer@ /can/ refer to the 'Vulkan.Core10.Handles.Framebuffer'+    -- object that the 'Vulkan.Core10.Handles.CommandBuffer' will be rendering+    -- to if it is executed within a render pass instance. It /can/ be     -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' if the framebuffer is not     -- known, or if the 'Vulkan.Core10.Handles.CommandBuffer' will not be     -- executed within a render pass instance.
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -7973,9 +7973,6 @@ --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' --     values ----- -   #VUID-vkCmdSetEvent-stageMask-requiredbitmask# @stageMask@ /must/---     not be @0@--- -- -   #VUID-vkCmdSetEvent-commandBuffer-recording# @commandBuffer@ /must/ --     be in the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>@@ -8134,9 +8131,6 @@ --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' --     values ----- -   #VUID-vkCmdResetEvent-stageMask-requiredbitmask# @stageMask@ /must/---     not be @0@--- -- -   #VUID-vkCmdResetEvent-commandBuffer-recording# @commandBuffer@ --     /must/ be in the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>@@ -8938,16 +8932,10 @@ --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' --     values ----- -   #VUID-vkCmdPipelineBarrier-srcStageMask-requiredbitmask#---     @srcStageMask@ /must/ not be @0@--- -- -   #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@ --     /must/ be a valid combination of --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' --     values------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-requiredbitmask#---     @dstStageMask@ /must/ not be @0@ -- -- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter# --     @dependencyFlags@ /must/ be a valid combination of
src/Vulkan/Core10/Device.hs view
@@ -128,6 +128,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV)@@ -138,6 +139,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT)@@ -149,6 +152,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)@@ -230,7 +234,7 @@ -- == Valid Usage -- -- -   #VUID-vkCreateDevice-ppEnabledExtensionNames-01387# All---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required extensions>+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required device extensions> --     for each extension in the --     'DeviceCreateInfo'::@ppEnabledExtensionNames@ list /must/ also be --     present in that list@@ -702,6 +706,12 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd> --     /must/ be enabled --+-- -   #VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax>+--     /must/ be enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkDeviceCreateInfo-sType-sType# @sType@ /must/ be@@ -755,6 +765,7 @@ --     'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT', --     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV', --     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',+--     'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', --     'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', --     'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',@@ -765,6 +776,8 @@ --     'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT', --     'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',+--     'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',+--     'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', --     'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', --     'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', --     'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',@@ -776,6 +789,7 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures', --     'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures', --     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',+--     'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT', --     'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', --     'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',@@ -947,6 +961,7 @@     | Just Refl <- eqT @e @PhysicalDeviceRayTracingPipelineFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceAccelerationStructureFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceMeshShaderFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceInvocationMaskFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDeviceShadingRateImageFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageFootprintFeaturesNV = Just f@@ -958,6 +973,7 @@     | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceASTCDecodeFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkanMemoryModelFeatures = Just f@@ -978,6 +994,8 @@     | Just Refl <- eqT @e @PhysicalDeviceSamplerYcbcrConversionFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderSubgroupExtendedTypesFeatures = Just f     | Just Refl <- eqT @e @PhysicalDevice16BitStorageFeatures = Just f+    | Just Refl <- eqT @e @PhysicalDevicePresentWaitFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDevicePresentIdFeaturesKHR = Just f     | Just Refl <- eqT @e @DeviceGroupDeviceCreateInfo = Just f     | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -507,7 +507,8 @@ -- = Parameters -- -- The table below defines the various use cases for 'getDeviceProcAddr'--- and expected return value for each case.+-- and expected return value (“fp” is “function pointer”) for each case. A+-- valid returned function pointer (“fp”) /must/ not be @NULL@. -- -- = Description --@@ -600,7 +601,8 @@ -- platform-specific APIs. -- -- The table below defines the various use cases for 'getInstanceProcAddr'--- and expected return value (“fp” is “function pointer”) for each case.+-- and expected return value (“fp” is “function pointer”) for each case. A+-- valid returned function pointer (“fp”) /must/ not be @NULL@. -- -- The returned function pointer is of type -- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction', and /must/ be cast to@@ -4223,7 +4225,7 @@     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes>     -- members of     -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',-    -- but smaller alignment is optionally: allowed by+    -- but smaller alignment is /optionally/ allowed by     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment>     -- and     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>.
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -66,105 +66,107 @@ -- accesses of that type. The following table lists, for each access flag, -- which pipeline stages /can/ perform that type of access. ----- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | Access flag                                            | Supported pipeline stages                                                                           |--- +========================================================+=====================================================================================================+--- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' ,                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_INDEX_READ_BIT'                                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_UNIFORM_READ_BIT'                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADER_READ_BIT'                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADER_WRITE_BIT'                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                      |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_READ_BIT'                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_WRITE_BIT'                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_READ_BIT'                                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_WRITE_BIT'                                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_READ_BIT'                               | Any                                                                                                 |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_WRITE_BIT'                              | Any                                                                                                 |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'            |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT',              |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                        |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT',                     |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT',                      |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or           |--- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'         |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | Access flag                                                                          | Supported pipeline stages                                                                           |+-- +======================================================================================+=====================================================================================================++-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' ,                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_INDEX_READ_BIT'                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_UNIFORM_READ_BIT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_SHADER_READ_BIT'                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_SHADER_WRITE_BIT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                      |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                                                  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_READ_BIT'                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_WRITE_BIT'                                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_READ_BIT'                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_WRITE_BIT'                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_READ_BIT'                                                             | Any                                                                                                 |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_WRITE_BIT'                                                            | Any                                                                                                 |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'            |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'             |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT',              |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                        |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'                                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT',                     |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT',                      |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or           |+-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'         |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ -- -- Supported access types --
src/Vulkan/Core10/Enums/BorderColor.hs view
@@ -53,13 +53,13 @@ pattern BORDER_COLOR_INT_OPAQUE_WHITE        = BorderColor 5 -- | 'BORDER_COLOR_INT_CUSTOM_EXT' indicates that a -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT'--- structure is present in the+-- structure is included in the -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pNext@ chain which contains -- the color data in integer format. pattern BORDER_COLOR_INT_CUSTOM_EXT          = BorderColor 1000287004 -- | 'BORDER_COLOR_FLOAT_CUSTOM_EXT' indicates that a -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT'--- structure is present in the+-- structure is included in the -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pNext@ chain which contains -- the color data in floating-point format. pattern BORDER_COLOR_FLOAT_CUSTOM_EXT        = BorderColor 1000287003
src/Vulkan/Core10/Enums/Format.hs view
@@ -844,7 +844,7 @@ pattern FORMAT_D16_UNORM                          = Format 124 -- | 'FORMAT_X8_D24_UNORM_PACK32' specifies a two-component, 32-bit format -- that has 24 unsigned normalized bits in the depth component and,--- optionally:, 8 bits that are unused.+-- /optionally/, 8 bits that are unused. pattern FORMAT_X8_D24_UNORM_PACK32                = Format 125 -- | 'FORMAT_D32_SFLOAT' specifies a one-component, 32-bit signed -- floating-point format that has 32 bits in the depth component.@@ -862,7 +862,7 @@ pattern FORMAT_D24_UNORM_S8_UINT                  = Format 129 -- | 'FORMAT_D32_SFLOAT_S8_UINT' specifies a two-component format that has 32 -- signed float bits in the depth component and 8 unsigned integer bits in--- the stencil component. There are optionally: 24 bits that are unused.+-- the stencil component. There are /optionally/ 24 bits that are unused. pattern FORMAT_D32_SFLOAT_S8_UINT                 = Format 130 -- | 'FORMAT_BC1_RGB_UNORM_BLOCK' specifies a three-component, -- block-compressed format where each 64-bit compressed texel block encodes
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -73,6 +73,7 @@ -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', -- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR',+-- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage',
src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs view
@@ -9,6 +9,7 @@                                                                    , IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT                                                                    , IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT                                                                    , IMAGE_USAGE_INPUT_ATTACHMENT_BIT+                                                                   , IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI                                                                    , IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                                    , IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT                                                                    , ..@@ -79,6 +80,8 @@ -- be read from a shader as an input attachment; and be used as an input -- attachment in a framebuffer. pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT                     = ImageUsageFlagBits 0x00000080+-- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"+pattern IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI               = ImageUsageFlagBits 0x00040000 -- | 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that -- the image /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' -- suitable for use as a@@ -108,6 +111,7 @@   , (IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT            , "DEPTH_STENCIL_ATTACHMENT_BIT")   , (IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT                , "TRANSIENT_ATTACHMENT_BIT")   , (IMAGE_USAGE_INPUT_ATTACHMENT_BIT                    , "INPUT_ATTACHMENT_BIT")+  , (IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI              , "INVOCATION_MASK_BIT_HUAWEI")   , (IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")   , (IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT            , "FRAGMENT_DENSITY_MAP_BIT_EXT")   ]
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -59,6 +59,7 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV                                                         , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI                                                         , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA                                                         , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA                                                         , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA@@ -113,6 +114,8 @@                                                         , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR+                                                        , STRUCTURE_TYPE_PRESENT_ID_KHR                                                         , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT@@ -137,6 +140,7 @@                                                         , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR@@ -164,6 +168,7 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV                                                         , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR                                                         , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT@@ -833,6 +838,7 @@ -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT',+-- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',@@ -855,6 +861,8 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures',@@ -875,6 +883,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures', -- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',@@ -969,6 +978,7 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV', -- 'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP',+-- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE',@@ -1217,6 +1227,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = StructureType 1000371001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV" pattern STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV         = StructureType 1000371000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = StructureType 1000370000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA  = StructureType 1000365001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"@@ -1325,6 +1337,10 @@ pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT       = StructureType 1000295001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = StructureType 1000295000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR   = StructureType 1000294001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_ID_KHR"+pattern STRUCTURE_TYPE_PRESENT_ID_KHR                            = StructureType 1000294000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR" pattern STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR          = StructureType 1000290000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"@@ -1373,6 +1389,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = StructureType 1000277000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = StructureType 1000276000+-- 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 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR" pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = StructureType 1000269005 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"@@ -1427,6 +1445,8 @@ pattern STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV          = StructureType 1000249001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = StructureType 1000249000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = StructureType 1000248000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT" pattern STRUCTURE_TYPE_VALIDATION_FEATURES_EXT                   = StructureType 1000247000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT"@@ -2192,6 +2212,7 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,              STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,              STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,              STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,              STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,@@ -2246,6 +2267,8 @@              STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,              STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,+             STRUCTURE_TYPE_PRESENT_ID_KHR,              STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,@@ -2270,6 +2293,7 @@              STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,              STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,              STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,              STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,@@ -2297,6 +2321,7 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,              STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,              STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,              STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,@@ -2723,15 +2748,16 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV     , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"     )-  , (STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV          , "MEMORY_GET_REMOTE_ADDRESS_INFO_NV")-  , (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA   , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA, "IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA      , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA    , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA")-  , (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA   , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT         , "PHYSICAL_DEVICE_DRM_PROPERTIES_EXT")-  , (STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT   , "VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT")-  , (STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT     , "VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT")+  , (STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV              , "MEMORY_GET_REMOTE_ADDRESS_INFO_NV")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, "PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI")+  , (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA       , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA")+  , (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA    , "IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA")+  , (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA          , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA")+  , (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA        , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA")+  , (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA       , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT             , "PHYSICAL_DEVICE_DRM_PROPERTIES_EXT")+  , (STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT       , "VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT")+  , (STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT         , "VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT     , "PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"     )@@ -2806,6 +2832,8 @@   , (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT        , "PRIVATE_DATA_SLOT_CREATE_INFO_EXT")   , (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT      , "DEVICE_PRIVATE_DATA_CREATE_INFO_EXT")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, "PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR  , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR")+  , (STRUCTURE_TYPE_PRESENT_ID_KHR                           , "PRESENT_ID_KHR")   , (STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR         , "PIPELINE_LIBRARY_CREATE_INFO_KHR")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT     , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"@@ -2852,6 +2880,9 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT     , "PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT"     )+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT+    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"+    )   , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR, "PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR")   , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR              , "PIPELINE_EXECUTABLE_STATISTIC_KHR")   , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR                   , "PIPELINE_EXECUTABLE_INFO_KHR")@@ -2899,6 +2930,7 @@     )   , (STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV              , "COOPERATIVE_MATRIX_PROPERTIES_NV")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR     , "PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR")   , (STRUCTURE_TYPE_VALIDATION_FEATURES_EXT                       , "VALIDATION_FEATURES_EXT")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT           , "PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT")   , (STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT         , "BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT")
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -457,6 +457,7 @@ -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',+-- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',@@ -470,6 +471,8 @@ -- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',@@ -485,6 +488,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures', -- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',
src/Vulkan/Core10/Handles.hs view
@@ -436,6 +436,7 @@ -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR>, -- 'Vulkan.Core10.Fence.waitForFences',+-- 'Vulkan.Extensions.VK_KHR_present_wait.waitForPresentKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.waitSemaphores', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.waitSemaphoresKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'@@ -503,6 +504,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',+-- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV',@@ -845,6 +847,7 @@ -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>,+-- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.ImageView.createImageView', -- 'Vulkan.Core10.ImageView.destroyImageView',
src/Vulkan/Core10/Image.hs view
@@ -1297,6 +1297,11 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT', --     @mipLevels@ /must/ be @1@ --+-- -   #VUID-VkImageCreateInfo-usage-04992# If @usage@ includes+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI',+--     @tiling@ /must/ be+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'+-- -- -   #VUID-VkImageCreateInfo-imageView2DOn3DImage-04459# If the --     @VK_KHR_portability_subset@ extension is enabled, and --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@imageView2DOn3DImage@
src/Vulkan/Core10/ImageView.hs view
@@ -646,9 +646,11 @@ -- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY'   | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' | -- +----------------------------------------------------------------+-----------------------------------------------+ -- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'         | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |+-- |                                                                | ,                                             | -- |                                                                | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' | -- +----------------------------------------------------------------+-----------------------------------------------+ -- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'   | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |+-- |                                                                | ,                                             | -- |                                                                | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' | -- +----------------------------------------------------------------+-----------------------------------------------+ -- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE'       | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |@@ -662,10 +664,6 @@ -- -- == Valid Usage ----- -   #VUID-VkImageViewCreateInfo-imageViewType-04969# @imageViewType@---     /must/ be compatible with the type of @image@ as shown in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table>--- -- -   #VUID-VkImageViewCreateInfo-image-01003# If @image@ was not created --     with --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT'@@ -686,13 +684,13 @@ --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' -- -- -   #VUID-VkImageViewCreateInfo-image-04970# If @image@ was created with---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @imageViewType@ is+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @viewType@ is --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' then --     @subresourceRange.levelCount@ /must/ be 1 -- -- -   #VUID-VkImageViewCreateInfo-image-04971# If @image@ was created with---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @imageViewType@ is+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @viewType@ is --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' then --     @flags@ /must/ not contain any of@@ -704,7 +702,7 @@ -- -   #VUID-VkImageViewCreateInfo-image-04972# If @image@ was created with --     a @samples@ value not equal to --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' then---     @imageViewType@ /must/ be either+--     @viewType@ /must/ be either --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' --@@ -913,10 +911,9 @@ --     then it /must/ be bound completely and contiguously to a single --     'Vulkan.Core10.Handles.DeviceMemory' object ----- -   #VUID-VkImageViewCreateInfo-subResourceRange-01021#---     @subresourceRange@ and @viewType@ /must/ be compatible with the---     image, as described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-compatibility compatibility table>+-- -   #VUID-VkImageViewCreateInfo-subResourceRange-01021# @viewType@+--     /must/ be compatible with the type of @image@ as shown in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table> -- -- -   #VUID-VkImageViewCreateInfo-image-02399# If @image@ has an --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,@@ -988,6 +985,12 @@ --     @subresourceRange.layerCount@ /must/ be less than or equal to --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubsampledArrayLayers ::maxSubsampledArrayLayers> --+-- -   #VUID-VkImageViewCreateInfo-invocationMask-04993# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask feature>+--     is enabled, and if @image@ was created with @usage@ containing+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI',+--     @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'+-- -- -   #VUID-VkImageViewCreateInfo-flags-04116# If @flags@ does not contain --     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' --     and @image@ was created with @usage@ containing@@ -1017,7 +1020,7 @@ --     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo' --     structure included in the @pNext@ chain of --     'Vulkan.Core10.Image.ImageCreateInfo', and---     @subResourceRange.aspectMask@ includes+--     @subresourceRange.aspectMask@ includes --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT', --     the @usage@ member of the --     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo'@@ -1033,7 +1036,7 @@ --     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo' --     structure included in the @pNext@ chain of --     'Vulkan.Core10.Image.ImageCreateInfo', and---     @subResourceRange.aspectMask@ includes bits other than+--     @subresourceRange.aspectMask@ includes bits other than --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT', --     the @usage@ member of the --     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo'@@ -1041,16 +1044,16 @@ --     @usage@ member of the 'Vulkan.Core10.Image.ImageCreateInfo' --     structure used to create @image@ ----- -   #VUID-VkImageViewCreateInfo-imageViewType-04973# If @imageViewType@---     is 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D',+-- -   #VUID-VkImageViewCreateInfo-imageViewType-04973# If @viewType@ is+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D', --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D', or --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'; and --     @subresourceRange.layerCount@ is not --     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then --     @subresourceRange.layerCount@ /must/ be 1 ----- -   #VUID-VkImageViewCreateInfo-imageViewType-04974# If @imageViewType@---     is 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D',+-- -   #VUID-VkImageViewCreateInfo-imageViewType-04974# If @viewType@ is+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D', --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D', or --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'; and --     @subresourceRange.layerCount@ is@@ -1085,8 +1088,8 @@ --     @VK_KHR_portability_subset@ extension is enabled, and --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@imageViewFormatSwizzle@ --     is 'Vulkan.Core10.FundamentalTypes.FALSE', all elements of---     @components@ /must/ be---     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'.+--     @components@ /must/ have the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- -   #VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466# --     If the @VK_KHR_portability_subset@ extension is enabled, and
src/Vulkan/Core10/Pass.hs view
@@ -1589,6 +1589,14 @@ --     feature is not enabled, @dstStageMask@ /must/ not contain --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV' --+-- -   #VUID-VkSubpassDependency-synchronization2-04984# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @srcStageMask@ /must/ not be @0@+--+-- -   #VUID-VkSubpassDependency-synchronization2-04985# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @dstStageMask@ /must/ not be @0@+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkSubpassDependency-srcStageMask-parameter# @srcStageMask@
src/Vulkan/Core10/Sampler.hs view
@@ -456,7 +456,7 @@ --     or 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT', --     then a --     'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT'---     /must/ be present in the @pNext@ chain+--     /must/ be included in the @pNext@ chain -- -- -   #VUID-VkSamplerCreateInfo-customBorderColors-04085# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-customBorderColors customBorderColors>
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -151,6 +151,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)@@ -173,6 +174,8 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures)@@ -193,6 +196,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)@@ -744,6 +748,7 @@     | Just Refl <- eqT @e @PhysicalDeviceRayTracingPipelineFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceAccelerationStructureFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceMeshShaderFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceInvocationMaskFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDeviceShadingRateImageFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageFootprintFeaturesNV = Just f@@ -755,6 +760,7 @@     | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceASTCDecodeFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkanMemoryModelFeatures = Just f@@ -774,6 +780,8 @@     | Just Refl <- eqT @e @PhysicalDeviceSamplerYcbcrConversionFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderSubgroupExtendedTypesFeatures = Just f     | Just Refl <- eqT @e @PhysicalDevice16BitStorageFeatures = Just f+    | Just Refl <- eqT @e @PhysicalDevicePresentWaitFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDevicePresentIdFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f     | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeaturesEXT = Just f
src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs view
@@ -60,7 +60,10 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceShaderDrawParametersFeatures = PhysicalDeviceShaderDrawParametersFeatures   { -- | #extension-features-shaderDrawParameters# @shaderDrawParameters@-    -- specifies whether shader draw parameters are supported.+    -- specifies whether the implementation supports the SPIR-V+    -- @DrawParameters@ capability. When this feature is not enabled, shader+    -- modules /must/ not declare the @SPV_KHR_shader_draw_parameters@+    -- extension or the @DrawParameters@ capability.     shaderDrawParameters :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12.hs view
@@ -202,7 +202,10 @@     -- Y′CBCR conversion /must/ not be used.     samplerYcbcrConversion :: Bool   , -- | #features-shaderDrawParameters# @shaderDrawParameters@ specifies whether-    -- shader draw parameters are supported.+    -- the implementation supports the SPIR-V @DrawParameters@ capability. When+    -- this feature is not enabled, shader modules /must/ not declare the+    -- @SPV_KHR_shader_draw_parameters@ extension or the @DrawParameters@+    -- capability.     shaderDrawParameters :: Bool   }   deriving (Typeable, Eq)
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -1580,6 +1580,14 @@ --     feature is not enabled, @dstStageMask@ /must/ not contain --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV' --+-- -   #VUID-VkSubpassDependency2-synchronization2-04988# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @srcStageMask@ /must/ not be @0@+--+-- -   #VUID-VkSubpassDependency2-synchronization2-04989# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @dstStageMask@ /must/ not be @0@+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkSubpassDependency2-sType-sType# @sType@ /must/ be
src/Vulkan/Dynamic.hs view
@@ -825,7 +825,7 @@   , pVkGetMemoryFdPropertiesKHR :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("fd" ::: CInt) -> ("pMemoryFdProperties" ::: Ptr MemoryFdPropertiesKHR) -> IO Result)   , pVkGetMemoryZirconHandleFUCHSIA :: FunPtr (Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr MemoryGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result)   , pVkGetMemoryZirconHandlePropertiesFUCHSIA :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("zirconHandle" ::: Zx_handle_t) -> ("pMemoryZirconHandleProperties" ::: Ptr MemoryZirconHandlePropertiesFUCHSIA) -> IO Result)-  , pVkGetMemoryRemoteAddressNV :: FunPtr (Ptr Device_T -> ("getMemoryRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result)+  , pVkGetMemoryRemoteAddressNV :: FunPtr (Ptr Device_T -> ("pMemoryGetRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result)   , pVkGetSemaphoreWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr SemaphoreGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result)   , pVkImportSemaphoreWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pImportSemaphoreWin32HandleInfo" ::: Ptr ImportSemaphoreWin32HandleInfoKHR) -> IO Result)   , pVkGetSemaphoreFdKHR :: FunPtr (Ptr Device_T -> ("pGetFdInfo" ::: Ptr SemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result)@@ -911,6 +911,7 @@   , pVkCmdDrawMeshTasksIndirectCountNV :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ())   , pVkCompileDeferredNV :: FunPtr (Ptr Device_T -> Pipeline -> ("shader" ::: Word32) -> IO Result)   , pVkCreateAccelerationStructureNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr AccelerationStructureCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result)+  , pVkCmdBindInvocationMaskHUAWEI :: FunPtr (Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ())   , pVkDestroyAccelerationStructureKHR :: FunPtr (Ptr Device_T -> AccelerationStructureKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkDestroyAccelerationStructureNV :: FunPtr (Ptr Device_T -> AccelerationStructureNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkGetAccelerationStructureMemoryRequirementsNV :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr AccelerationStructureMemoryRequirementsInfoNV) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2KHR)) -> IO ())@@ -1016,6 +1017,7 @@   , pVkDestroyCuModuleNVX :: FunPtr (Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkDestroyCuFunctionNVX :: FunPtr (Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkCmdCuLaunchKernelNVX :: FunPtr (Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CuLaunchInfoNVX) -> IO ())+  , pVkWaitForPresentKHR :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("presentId" ::: Word64) -> ("timeout" ::: Word64) -> IO Result)   }  deriving instance Eq DeviceCmds@@ -1065,6 +1067,7 @@     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1323,6 +1326,7 @@   vkCmdDrawMeshTasksIndirectCountNV <- getDeviceProcAddr' handle (Ptr "vkCmdDrawMeshTasksIndirectCountNV"#)   vkCompileDeferredNV <- getDeviceProcAddr' handle (Ptr "vkCompileDeferredNV"#)   vkCreateAccelerationStructureNV <- getDeviceProcAddr' handle (Ptr "vkCreateAccelerationStructureNV"#)+  vkCmdBindInvocationMaskHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdBindInvocationMaskHUAWEI"#)   vkDestroyAccelerationStructureKHR <- getDeviceProcAddr' handle (Ptr "vkDestroyAccelerationStructureKHR"#)   vkDestroyAccelerationStructureNV <- getDeviceProcAddr' handle (Ptr "vkDestroyAccelerationStructureNV"#)   vkGetAccelerationStructureMemoryRequirementsNV <- getDeviceProcAddr' handle (Ptr "vkGetAccelerationStructureMemoryRequirementsNV"#)@@ -1428,6 +1432,7 @@   vkDestroyCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuModuleNVX"#)   vkDestroyCuFunctionNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuFunctionNVX"#)   vkCmdCuLaunchKernelNVX <- getDeviceProcAddr' handle (Ptr "vkCmdCuLaunchKernelNVX"#)+  vkWaitForPresentKHR <- getDeviceProcAddr' handle (Ptr "vkWaitForPresentKHR"#)   pure $ DeviceCmds handle     (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr)     (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1581,7 +1586,7 @@     (castFunPtr @_ @(Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("fd" ::: CInt) -> ("pMemoryFdProperties" ::: Ptr MemoryFdPropertiesKHR) -> IO Result) vkGetMemoryFdPropertiesKHR)     (castFunPtr @_ @(Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr MemoryGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result) vkGetMemoryZirconHandleFUCHSIA)     (castFunPtr @_ @(Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("zirconHandle" ::: Zx_handle_t) -> ("pMemoryZirconHandleProperties" ::: Ptr MemoryZirconHandlePropertiesFUCHSIA) -> IO Result) vkGetMemoryZirconHandlePropertiesFUCHSIA)-    (castFunPtr @_ @(Ptr Device_T -> ("getMemoryRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result) vkGetMemoryRemoteAddressNV)+    (castFunPtr @_ @(Ptr Device_T -> ("pMemoryGetRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result) vkGetMemoryRemoteAddressNV)     (castFunPtr @_ @(Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr SemaphoreGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result) vkGetSemaphoreWin32HandleKHR)     (castFunPtr @_ @(Ptr Device_T -> ("pImportSemaphoreWin32HandleInfo" ::: Ptr ImportSemaphoreWin32HandleInfoKHR) -> IO Result) vkImportSemaphoreWin32HandleKHR)     (castFunPtr @_ @(Ptr Device_T -> ("pGetFdInfo" ::: Ptr SemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result) vkGetSemaphoreFdKHR)@@ -1667,6 +1672,7 @@     (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) vkCmdDrawMeshTasksIndirectCountNV)     (castFunPtr @_ @(Ptr Device_T -> Pipeline -> ("shader" ::: Word32) -> IO Result) vkCompileDeferredNV)     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr AccelerationStructureCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result) vkCreateAccelerationStructureNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ()) vkCmdBindInvocationMaskHUAWEI)     (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyAccelerationStructureKHR)     (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyAccelerationStructureNV)     (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr AccelerationStructureMemoryRequirementsInfoNV) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2KHR)) -> IO ()) vkGetAccelerationStructureMemoryRequirementsNV)@@ -1772,4 +1778,5 @@     (castFunPtr @_ @(Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuModuleNVX)     (castFunPtr @_ @(Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuFunctionNVX)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CuLaunchInfoNVX) -> IO ()) vkCmdCuLaunchKernelNVX)+    (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("presentId" ::: Word64) -> ("timeout" ::: Word64) -> IO Result) vkWaitForPresentKHR) 
src/Vulkan/Extensions.hs view
@@ -84,6 +84,7 @@                           , module Vulkan.Extensions.VK_EXT_scalar_block_layout                           , module Vulkan.Extensions.VK_EXT_separate_stencil_usage                           , module Vulkan.Extensions.VK_EXT_shader_atomic_float+                          , module Vulkan.Extensions.VK_EXT_shader_atomic_float2                           , module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation                           , module Vulkan.Extensions.VK_EXT_shader_image_atomic_int64                           , module Vulkan.Extensions.VK_EXT_shader_stencil_export@@ -112,6 +113,7 @@                           , module Vulkan.Extensions.VK_GOOGLE_display_timing                           , module Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1                           , module Vulkan.Extensions.VK_GOOGLE_user_type+                          , module Vulkan.Extensions.VK_HUAWEI_invocation_mask                           , module Vulkan.Extensions.VK_IMG_filter_cubic                           , module Vulkan.Extensions.VK_IMG_format_pvrtc                           , module Vulkan.Extensions.VK_INTEL_performance_query@@ -162,6 +164,8 @@                           , module Vulkan.Extensions.VK_KHR_pipeline_executable_properties                           , module Vulkan.Extensions.VK_KHR_pipeline_library                           , module Vulkan.Extensions.VK_KHR_portability_subset+                          , module Vulkan.Extensions.VK_KHR_present_id+                          , module Vulkan.Extensions.VK_KHR_present_wait                           , module Vulkan.Extensions.VK_KHR_push_descriptor                           , module Vulkan.Extensions.VK_KHR_ray_query                           , module Vulkan.Extensions.VK_KHR_ray_tracing_pipeline@@ -330,6 +334,7 @@ import Vulkan.Extensions.VK_EXT_scalar_block_layout import Vulkan.Extensions.VK_EXT_separate_stencil_usage import Vulkan.Extensions.VK_EXT_shader_atomic_float+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 import Vulkan.Extensions.VK_EXT_shader_stencil_export@@ -358,6 +363,7 @@ import Vulkan.Extensions.VK_GOOGLE_display_timing import Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1 import Vulkan.Extensions.VK_GOOGLE_user_type+import Vulkan.Extensions.VK_HUAWEI_invocation_mask import Vulkan.Extensions.VK_IMG_filter_cubic import Vulkan.Extensions.VK_IMG_format_pvrtc import Vulkan.Extensions.VK_INTEL_performance_query@@ -408,6 +414,8 @@ import Vulkan.Extensions.VK_KHR_pipeline_executable_properties import Vulkan.Extensions.VK_KHR_pipeline_library import Vulkan.Extensions.VK_KHR_portability_subset+import Vulkan.Extensions.VK_KHR_present_id+import Vulkan.Extensions.VK_KHR_present_wait import Vulkan.Extensions.VK_KHR_push_descriptor import Vulkan.Extensions.VK_KHR_ray_query import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline
src/Vulkan/Extensions/Dependencies.hs view
@@ -18,6 +18,7 @@ import Vulkan.Extensions.VK_EXT_acquire_xlib_display (pattern EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_astc_decode_mode (pattern EXT_ASTC_DECODE_MODE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_buffer_device_address (pattern EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_calibrated_timestamps (pattern EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_color_write_enable (pattern EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_conservative_rasterization (pattern EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_debug_marker (pattern EXT_DEBUG_MARKER_EXTENSION_NAME)@@ -56,6 +57,7 @@ import Vulkan.Extensions.VK_EXT_sampler_filter_minmax (pattern EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_sample_locations (pattern EXT_SAMPLE_LOCATIONS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_scalar_block_layout (pattern EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME)@@ -74,6 +76,7 @@ import Vulkan.Extensions.VK_GGP_frame_token (pattern GGP_FRAME_TOKEN_EXTENSION_NAME) import Vulkan.Extensions.VK_GGP_stream_descriptor_surface (pattern GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_GOOGLE_display_timing (pattern GOOGLE_DISPLAY_TIMING_EXTENSION_NAME)+import Vulkan.Extensions.VK_HUAWEI_invocation_mask (pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME) import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_16bit_storage (pattern KHR_16BIT_STORAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_8bit_storage (pattern KHR_8BIT_STORAGE_EXTENSION_NAME)@@ -118,6 +121,8 @@ import Vulkan.Extensions.VK_KHR_performance_query (pattern KHR_PERFORMANCE_QUERY_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_pipeline_executable_properties (pattern KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_portability_subset (pattern KHR_PORTABILITY_SUBSET_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_present_id (pattern KHR_PRESENT_ID_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_present_wait (pattern KHR_PRESENT_WAIT_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_push_descriptor (pattern KHR_PUSH_DESCRIPTOR_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_query (pattern KHR_RAY_QUERY_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (pattern KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME)@@ -379,6 +384,7 @@     ]   KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME      -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_SHADER_CLOCK_EXTENSION_NAME             -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME    -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME   -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   GGP_FRAME_TOKEN_EXTENSION_NAME ->@@ -440,7 +446,9 @@     , KHR_MULTIVIEW_EXTENSION_NAME     , KHR_MAINTENANCE2_EXTENSION_NAME     ]-  EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME     -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_PRESENT_WAIT_EXTENSION_NAME ->+    [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_PRESENT_ID_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]   NV_COOPERATIVE_MATRIX_EXTENSION_NAME         -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME    -> [NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME]   EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]@@ -459,19 +467,22 @@     , KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME     , KHR_SWAPCHAIN_EXTENSION_NAME     ]-  EXT_HEADLESS_SURFACE_EXTENSION_NAME                   -> [KHR_SURFACE_EXTENSION_NAME]-  KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME              -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_LINE_RASTERIZATION_EXTENSION_NAME                 -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME                -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_HOST_QUERY_RESET_EXTENSION_NAME                   -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME             -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME     -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_HEADLESS_SURFACE_EXTENSION_NAME               -> [KHR_SURFACE_EXTENSION_NAME]+  KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME          -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_LINE_RASTERIZATION_EXTENSION_NAME             -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME            -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_HOST_QUERY_RESET_EXTENSION_NAME               -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME         -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME ->+    [EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME             -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME             -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]   EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME               -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME ->     [EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME, KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]+  KHR_PRESENT_ID_EXTENSION_NAME                       -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]   NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME         -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_SYNCHRONIZATION_2_EXTENSION_NAME                -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]@@ -523,6 +534,18 @@     [ KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME     , KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]+  HUAWEI_INVOCATION_MASK_EXTENSION_NAME ->+    [ KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME+    , KHR_SYNCHRONIZATION_2_EXTENSION_NAME+    , KHR_SPIRV_1_4_EXTENSION_NAME+    , KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+    , KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+    , KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+    , KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+    , KHR_MAINTENANCE3_EXTENSION_NAME     ]   NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME ->     [ KHR_EXTERNAL_MEMORY_EXTENSION_NAME
src/Vulkan/Extensions/Handles.hs view
@@ -424,7 +424,8 @@ -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.getSwapchainStatusKHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.releaseFullScreenExclusiveModeEXT', -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.setHdrMetadataEXT',--- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD'+-- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',+-- 'Vulkan.Extensions.VK_KHR_present_wait.waitForPresentKHR' newtype SwapchainKHR = SwapchainKHR Word64   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle)
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -174,7 +174,7 @@ -- __RESOLVED__: This would be desirable, so that apps converting from -- OpenGL ES to Vulkan could get the same output given the same input. But -- since sampling and conversion from Y′CBCR images is so loosely defined--- in OpenGL ES, multiple implementations do it in a way that doesn’t+-- in OpenGL ES, multiple implementations do it in a way that does not -- conform to Vulkan’s requirements. Modifying the OpenGL ES implementation -- would be difficult, and would change the output of existing unmodified -- applications. Changing the output only for applications that are being
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot view
@@ -174,7 +174,7 @@ -- __RESOLVED__: This would be desirable, so that apps converting from -- OpenGL ES to Vulkan could get the same output given the same input. But -- since sampling and conversion from Y′CBCR images is so loosely defined--- in OpenGL ES, multiple implementations do it in a way that doesn’t+-- in OpenGL ES, multiple implementations do it in a way that does not -- conform to Vulkan’s requirements. Modifying the OpenGL ES implementation -- would be difficult, and would change the output of existing unmodified -- applications. Changing the output only for applications that are being
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -21,6 +21,8 @@ -- --     -   Requires Vulkan 1.0 --+--     -   Requires @VK_KHR_get_physical_device_properties2@+-- -- [__Contact__] -- --     -   Daniel Rakos@@ -100,7 +102,7 @@ -- type. The proposed API chooses the general approach for the sake of -- extensibility. ----- 4) Shouldn’t we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC?+-- 4) Should we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC? -- -- __RESOLVED__: CLOCK_MONOTONIC is usable in a wider set of situations, -- however, it is subject to NTP adjustments so some use cases may prefer@@ -126,13 +128,13 @@ -- -- __RESOLVED__: Yes, especially as some time domains by definition allow -- for that to happen (e.g. CLOCK_MONOTONIC is subject to NTP adjustments).--- Thus it’s recommended that applications re-calibrate from time to time.+-- Thus it is recommended that applications re-calibrate from time to time. -- -- 7) Should we add a query for reporting the maximum deviation of the -- timestamp values returned by calibrated timestamp queries? -- -- __RESOLVED__: A global query seems inappropriate and difficult to--- enforce. However, it’s possible to return the maximum deviation any+-- enforce. However, it is possible to return the maximum deviation any -- single calibrated timestamp query can have by sampling one of the time -- domains twice as follows: --@@ -146,7 +148,7 @@ -- -- __RESOLVED__: Unless the tick of each clock corresponding to the set of -- time domains coincides and all clocks can literally be sampled--- simutaneously, there isn’t really a possibility for the maximum+-- simutaneously, there is not really a possibility for the maximum -- deviation to be zero, so by convention the maximum deviation is always -- at least the maximum of the length of the ticks of the set of time -- domains calibrated and thus can never be zero.
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot view
@@ -21,6 +21,8 @@ -- --     -   Requires Vulkan 1.0 --+--     -   Requires @VK_KHR_get_physical_device_properties2@+-- -- [__Contact__] -- --     -   Daniel Rakos@@ -100,7 +102,7 @@ -- type. The proposed API chooses the general approach for the sake of -- extensibility. ----- 4) Shouldn’t we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC?+-- 4) Should we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC? -- -- __RESOLVED__: CLOCK_MONOTONIC is usable in a wider set of situations, -- however, it is subject to NTP adjustments so some use cases may prefer@@ -126,13 +128,13 @@ -- -- __RESOLVED__: Yes, especially as some time domains by definition allow -- for that to happen (e.g. CLOCK_MONOTONIC is subject to NTP adjustments).--- Thus it’s recommended that applications re-calibrate from time to time.+-- Thus it is recommended that applications re-calibrate from time to time. -- -- 7) Should we add a query for reporting the maximum deviation of the -- timestamp values returned by calibrated timestamp queries? -- -- __RESOLVED__: A global query seems inappropriate and difficult to--- enforce. However, it’s possible to return the maximum deviation any+-- enforce. However, it is possible to return the maximum deviation any -- single calibrated timestamp query can have by sampling one of the time -- domains twice as follows: --@@ -146,7 +148,7 @@ -- -- __RESOLVED__: Unless the tick of each clock corresponding to the set of -- time domains coincides and all clocks can literally be sampled--- simutaneously, there isn’t really a possibility for the maximum+-- simutaneously, there is not really a possibility for the maximum -- deviation to be zero, so by convention the maximum deviation is always -- at least the maximum of the length of the ticks of the set of time -- domains calibrated and thus can never be zero.
src/Vulkan/Extensions/VK_EXT_color_write_enable.hs view
@@ -352,12 +352,15 @@ -- -- Color Write Enable interacts with the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>--- as follows: * If @colorWriteEnable@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE', writes to the attachment are--- determined by the @colorWriteMask@. * If @colorWriteEnable@ is--- 'Vulkan.Core10.FundamentalTypes.FALSE', the @colorWriteMask@ is ignored--- and writes to all components of the attachment are disabled. This is--- equivalent to specifying a @colorWriteMask@ of 0.+-- as follows:+--+-- -   If @colorWriteEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',+--     writes to the attachment are determined by the @colorWriteMask@.+--+-- -   If @colorWriteEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE', the+--     @colorWriteMask@ is ignored and writes to all components of the+--     attachment are disabled. This is equivalent to specifying a+--     @colorWriteMask@ of 0. -- -- == Valid Usage --
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs view
@@ -266,22 +266,23 @@     -- primitives.     conservativePointAndLineRasterization :: Bool   , -- | #limits-degenerateTrianglesRasterized# @degenerateTrianglesRasterized@-    -- is false if the implementation culls primitives generated from triangles-    -- that become zero area after they are quantized to the fixed-point-    -- rasterization pixel grid. @degenerateTrianglesRasterized@ is-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if these primitives are not culled-    -- and the provoking vertex attributes and depth value are used for the-    -- fragments. The primitive area calculation is done on the primitive-    -- generated from the clipped triangle if applicable. Zero area primitives-    -- are backfacing and the application /can/ enable backface culling if-    -- desired.-    degenerateTrianglesRasterized :: Bool-  , -- | #limits-degenerateLinesRasterized# @degenerateLinesRasterized@ is false-    -- if the implementation culls lines that become zero length after they are+    -- is 'Vulkan.Core10.FundamentalTypes.FALSE' if the implementation culls+    -- primitives generated from triangles that become zero area after they are     -- quantized to the fixed-point rasterization pixel grid.-    -- @degenerateLinesRasterized@ is 'Vulkan.Core10.FundamentalTypes.TRUE' if-    -- zero length lines are not culled and the provoking vertex attributes and-    -- depth value are used for the fragments.+    -- @degenerateTrianglesRasterized@ is 'Vulkan.Core10.FundamentalTypes.TRUE'+    -- if these primitives are not culled and the provoking vertex attributes+    -- and depth value are used for the fragments. The primitive area+    -- calculation is done on the primitive generated from the clipped triangle+    -- if applicable. Zero area primitives are backfacing and the application+    -- /can/ enable backface culling if desired.+    degenerateTrianglesRasterized :: Bool+  , -- | #limits-degenerateLinesRasterized# @degenerateLinesRasterized@ is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' if the implementation culls lines+    -- that become zero length after they are quantized to the fixed-point+    -- rasterization pixel grid. @degenerateLinesRasterized@ is+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if zero length lines are not+    -- culled and the provoking vertex attributes and depth value are used for+    -- the fragments.     degenerateLinesRasterized :: Bool   , -- | #limits-fullyCoveredFragmentShaderInputVariable#     -- @fullyCoveredFragmentShaderInputVariable@ is
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs view
@@ -167,8 +167,8 @@ -- color types be separated or should they be combined into one generic INT -- (integer) type? ----- __RESOLVED__: Separating these doesn’t make much sense as the existing--- fixed border color types don’t have this distinction, and there is no+-- __RESOLVED__: Separating these does not make much sense as the existing+-- fixed border color types do not have this distinction, and there is no -- reason in hardware to do so. This separation would also create -- unnecessary work and considerations for the application. --
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot view
@@ -167,8 +167,8 @@ -- color types be separated or should they be combined into one generic INT -- (integer) type? ----- __RESOLVED__: Separating these doesn’t make much sense as the existing--- fixed border color types don’t have this distinction, and there is no+-- __RESOLVED__: Separating these does not make much sense as the existing+-- fixed border color types do not have this distinction, and there is no -- reason in hardware to do so. This separation would also create -- unnecessary work and considerations for the application. --
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -423,8 +423,8 @@ -- statements, it may take a while before the new functionality is fully -- exposed. ----- 3) If the validation layers won’t expose the new functionality--- immediately, then what’s the point of this extension?+-- 3) If the validation layers will not expose the new functionality+-- immediately, then what is the point of this extension? -- -- __RESOLVED__: We needed a replacement for @VK_EXT_debug_report@ because -- the 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT'@@ -440,9 +440,9 @@ -- related. If we did split up the extension, where would the structures -- and enums live, and how would you define that the device behavior in the -- instance extension is really only valid if the device extension is--- enabled, and the functionality is passed in. It’s cleaner to just define--- this all as an instance extension, plus it allows the application to--- enable all debug functionality provided with one enable string during+-- enabled, and the functionality is passed in. It is cleaner to just+-- define this all as an instance extension, plus it allows the application+-- to enable all debug functionality provided with one enable string during -- 'Vulkan.Core10.DeviceInitialization.createInstance'. -- -- == Version History
src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot view
@@ -423,8 +423,8 @@ -- statements, it may take a while before the new functionality is fully -- exposed. ----- 3) If the validation layers won’t expose the new functionality--- immediately, then what’s the point of this extension?+-- 3) If the validation layers will not expose the new functionality+-- immediately, then what is the point of this extension? -- -- __RESOLVED__: We needed a replacement for @VK_EXT_debug_report@ because -- the 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT'@@ -440,9 +440,9 @@ -- related. If we did split up the extension, where would the structures -- and enums live, and how would you define that the device behavior in the -- instance extension is really only valid if the device extension is--- enabled, and the functionality is passed in. It’s cleaner to just define--- this all as an instance extension, plus it allows the application to--- enable all debug functionality provided with one enable string during+-- enabled, and the functionality is passed in. It is cleaner to just+-- define this all as an instance extension, plus it allows the application+-- to enable all debug functionality provided with one enable string during -- 'Vulkan.Core10.DeviceInitialization.createInstance'. -- -- == Version History
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs view
@@ -118,18 +118,18 @@ -- bindings of resources to 'Vulkan.Core10.Handles.DeviceMemory') would -- have to intercept all entry points that take a -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' parameter and--- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That’s--- maybe doable for the extensions we know about, but not for ones we--- don’t. The proposal would work fine in the face of most unknown--- extensions. But even for ones we know about, since apps can provide a--- different set of callbacks and userdata and those can be retained by the--- driver and used later (esp. for pool object, but not just those), we’d--- have to dynamically allocate the interception trampoline every time.--- That’s getting to be an unreasonably large amount of complexity and--- (possibly) overhead.+-- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That may+-- be doable for the extensions we know about, but not for ones we do not.+-- The proposal would work fine in the face of most unknown extensions. But+-- even for ones we know about, since apps can provide a different set of+-- callbacks and userdata and those can be retained by the driver and used+-- later (esp. for pool object, but not just those), we would have to+-- dynamically allocate the interception trampoline every time. That is+-- getting to be an unreasonably large amount of complexity and (possibly)+-- overhead. ----- We’re interested in both alloc\/free and import\/unimport. The latter is--- fairly important for tracking (and avoiding double-counting) of+-- We are interested in both alloc\/free and import\/unimport. The latter+-- is fairly important for tracking (and avoiding double-counting) of -- swapchain images (still true with “native swapchains” based on external -- memory) and media\/camera interop. Though we might be able to handle -- this with additional@@ -140,10 +140,10 @@ -- The internal alloc\/free callbacks are not extensible except via new -- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType' -- values. The 'DeviceMemoryReportCallbackDataEXT' in this extension is--- extensible. That was deliberate: there’s a real possibility we’ll want--- to get extra information in the future. As one example, currently this--- reports only physical allocations, but we believe there are interesting--- cases for tracking how populated that VA region is.+-- extensible. That was deliberate: there is a real possibility we will+-- want to get extra information in the future. As one example, currently+-- this reports only physical allocations, but we believe there are+-- interesting cases for tracking how populated that VA region is. -- -- The callbacks are clearly specified as only callable within the context -- of a call from the app into Vulkan. We believe there are some cases@@ -159,12 +159,12 @@ -- -- 3) Should the callback be reporting which heap is used? ----- __RESOLVED__: Yes. It’s important for non-UMA systems to have all the+-- __RESOLVED__: Yes. It is important for non-UMA systems to have all the -- device memory allocations attributed to the corresponding device memory -- heaps. For internally-allocated device memory, @heapIndex@ will always -- correspond to an advertised heap, rather than having a magic value--- indicating a non-advertised heap. Drivers can advertise heaps that don’t--- have any corresponding memory types if they need to.+-- indicating a non-advertised heap. Drivers can advertise heaps that do+-- not have any corresponding memory types if they need to. -- -- 4) Should we use an array of callback for the layers to intercept -- instead of chaining multiple of the@@ -173,9 +173,9 @@ -- -- __RESOLVED__ No. The pointer to the -- 'DeviceDeviceMemoryReportCreateInfoEXT' structure itself is const and--- you can’t just cast it away. Thus we can’t update the callback array--- inside the structure. In addition, we can’t drop this @pNext@ chain--- either, so making a copy of this whole structure doesn’t work either.+-- you cannot just cast it away. Thus we cannot update the callback array+-- inside the structure. In addition, we cannot drop this @pNext@ chain+-- either, so making a copy of this whole structure does not work either. -- -- 5) Should we track bulk allocations shared among multiple objects? --@@ -197,7 +197,7 @@ -- __RESOLVED__ No. Some implementations might choose to multiplex work -- from multiple application threads into a single backend thread and -- perform JIT allocations as a part of that flow. Since this behavior is--- theoretically legit, we can’t require the callbacks to be always called+-- theoretically legit, we cannot require the callbacks to be always called -- in the same thread with the Vulkan commands, and the note is to remind -- the applications to handle this case properly. --
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot view
@@ -118,18 +118,18 @@ -- bindings of resources to 'Vulkan.Core10.Handles.DeviceMemory') would -- have to intercept all entry points that take a -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' parameter and--- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That’s--- maybe doable for the extensions we know about, but not for ones we--- don’t. The proposal would work fine in the face of most unknown--- extensions. But even for ones we know about, since apps can provide a--- different set of callbacks and userdata and those can be retained by the--- driver and used later (esp. for pool object, but not just those), we’d--- have to dynamically allocate the interception trampoline every time.--- That’s getting to be an unreasonably large amount of complexity and--- (possibly) overhead.+-- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That may+-- be doable for the extensions we know about, but not for ones we do not.+-- The proposal would work fine in the face of most unknown extensions. But+-- even for ones we know about, since apps can provide a different set of+-- callbacks and userdata and those can be retained by the driver and used+-- later (esp. for pool object, but not just those), we would have to+-- dynamically allocate the interception trampoline every time. That is+-- getting to be an unreasonably large amount of complexity and (possibly)+-- overhead. ----- We’re interested in both alloc\/free and import\/unimport. The latter is--- fairly important for tracking (and avoiding double-counting) of+-- We are interested in both alloc\/free and import\/unimport. The latter+-- is fairly important for tracking (and avoiding double-counting) of -- swapchain images (still true with “native swapchains” based on external -- memory) and media\/camera interop. Though we might be able to handle -- this with additional@@ -140,10 +140,10 @@ -- The internal alloc\/free callbacks are not extensible except via new -- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType' -- values. The 'DeviceMemoryReportCallbackDataEXT' in this extension is--- extensible. That was deliberate: there’s a real possibility we’ll want--- to get extra information in the future. As one example, currently this--- reports only physical allocations, but we believe there are interesting--- cases for tracking how populated that VA region is.+-- extensible. That was deliberate: there is a real possibility we will+-- want to get extra information in the future. As one example, currently+-- this reports only physical allocations, but we believe there are+-- interesting cases for tracking how populated that VA region is. -- -- The callbacks are clearly specified as only callable within the context -- of a call from the app into Vulkan. We believe there are some cases@@ -159,12 +159,12 @@ -- -- 3) Should the callback be reporting which heap is used? ----- __RESOLVED__: Yes. It’s important for non-UMA systems to have all the+-- __RESOLVED__: Yes. It is important for non-UMA systems to have all the -- device memory allocations attributed to the corresponding device memory -- heaps. For internally-allocated device memory, @heapIndex@ will always -- correspond to an advertised heap, rather than having a magic value--- indicating a non-advertised heap. Drivers can advertise heaps that don’t--- have any corresponding memory types if they need to.+-- indicating a non-advertised heap. Drivers can advertise heaps that do+-- not have any corresponding memory types if they need to. -- -- 4) Should we use an array of callback for the layers to intercept -- instead of chaining multiple of the@@ -173,9 +173,9 @@ -- -- __RESOLVED__ No. The pointer to the -- 'DeviceDeviceMemoryReportCreateInfoEXT' structure itself is const and--- you can’t just cast it away. Thus we can’t update the callback array--- inside the structure. In addition, we can’t drop this @pNext@ chain--- either, so making a copy of this whole structure doesn’t work either.+-- you cannot just cast it away. Thus we cannot update the callback array+-- inside the structure. In addition, we cannot drop this @pNext@ chain+-- either, so making a copy of this whole structure does not work either. -- -- 5) Should we track bulk allocations shared among multiple objects? --@@ -197,7 +197,7 @@ -- __RESOLVED__ No. Some implementations might choose to multiplex work -- from multiple application threads into a single backend thread and -- perform JIT allocations as a part of that flow. Since this behavior is--- theoretically legit, we can’t require the callbacks to be always called+-- theoretically legit, we cannot require the callbacks to be always called -- in the same thread with the Vulkan commands, and the note is to remind -- the applications to handle this case properly. --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs view
@@ -756,7 +756,8 @@ --     'Vulkan.Core10.Handles.CommandBuffer' handle -- -- -   #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-parameter# @pBuffers@---     /must/ be a valid pointer to an array of @bindingCount@ valid+--     /must/ be a valid pointer to an array of @bindingCount@ valid or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' --     'Vulkan.Core10.Handles.Buffer' handles -- -- -   #VUID-vkCmdBindVertexBuffers2EXT-pOffsets-parameter# @pOffsets@@@ -784,9 +785,9 @@ --     greater than @0@ -- -- -   #VUID-vkCmdBindVertexBuffers2EXT-commonparent# Both of---     @commandBuffer@, and the elements of @pBuffers@ /must/ have been---     created, allocated, or retrieved from the same---     'Vulkan.Core10.Handles.Device'+--     @commandBuffer@, and the elements of @pBuffers@ that are valid+--     handles of non-ignored parameters /must/ have been created,+--     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device' -- -- == Host Synchronization --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs view
@@ -175,8 +175,8 @@   "dynamic" mkVkCmdSetPatchControlPointsEXT   :: FunPtr (Ptr CommandBuffer_T -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> IO () --- | vkCmdSetPatchControlPointsEXT - specifies the number of control points--- per patch+-- | vkCmdSetPatchControlPointsEXT - Specify the number of control points per+-- patch -- -- = Description --@@ -411,7 +411,7 @@   "dynamic" mkVkCmdSetLogicOpEXT   :: FunPtr (Ptr CommandBuffer_T -> LogicOp -> IO ()) -> Ptr CommandBuffer_T -> LogicOp -> IO () --- | vkCmdSetLogicOpEXT - selects which logical operation to apply for blend+-- | vkCmdSetLogicOpEXT - Select which logical operation to apply for blend -- state -- -- = Description@@ -489,7 +489,7 @@   "dynamic" mkVkCmdSetPrimitiveRestartEnableEXT   :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () --- | vkCmdSetPrimitiveRestartEnableEXT - controls whether a special vertex+-- | vkCmdSetPrimitiveRestartEnableEXT - Control whether a special vertex -- index value is treated as restarting the assembly of primitives -- -- = Description
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs view
@@ -112,14 +112,14 @@ -- 3) Can the application free the host allocation? -- -- __RESOLVED__: No, it violates valid usage conditions. Using the memory--- object imported from a host allocation that’s already freed thus results--- in undefined behavior.+-- object imported from a host allocation that is already freed thus+-- results in undefined behavior. -- -- 4) Is 'Vulkan.Core10.Memory.mapMemory' expected to return the same host -- address which was specified when importing it to the memory object? -- -- __RESOLVED__: No. Implementations are allowed to return the same address--- but it’s not required. Some implementations might return a different+-- but it is not required. Some implementations might return a different -- virtual mapping of the allocation, although the same physical pages will -- be used. --@@ -312,7 +312,7 @@   pure $ (pMemoryHostPointerProperties)  --- | VkImportMemoryHostPointerInfoEXT - import memory from a host pointer+-- | VkImportMemoryHostPointerInfoEXT - Import memory from a host pointer -- -- = Description --
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot view
@@ -112,14 +112,14 @@ -- 3) Can the application free the host allocation? -- -- __RESOLVED__: No, it violates valid usage conditions. Using the memory--- object imported from a host allocation that’s already freed thus results--- in undefined behavior.+-- object imported from a host allocation that is already freed thus+-- results in undefined behavior. -- -- 4) Is 'Vulkan.Core10.Memory.mapMemory' expected to return the same host -- address which was specified when importing it to the memory object? -- -- __RESOLVED__: No. Implementations are allowed to return the same address--- but it’s not required. Some implementations might return a different+-- but it is not required. Some implementations might return a different -- virtual mapping of the allocation, although the same physical pages will -- be used. --
src/Vulkan/Extensions/VK_EXT_global_priority.hs view
@@ -48,8 +48,8 @@ -- -- In Vulkan, users can specify device-scope queue priorities. In some -- cases it may be useful to extend this concept to a system-wide scope.--- This extension provides a mechanism for caller’s to set their--- system-wide priority. The default queue priority is+-- This extension provides a mechanism for callers to set their system-wide+-- priority. The default queue priority is -- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'. -- -- The driver implementation will attempt to skew hardware resource
src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot view
@@ -48,8 +48,8 @@ -- -- In Vulkan, users can specify device-scope queue priorities. In some -- cases it may be useful to extend this concept to a system-wide scope.--- This extension provides a mechanism for caller’s to set their--- system-wide priority. The default queue priority is+-- This extension provides a mechanism for callers to set their system-wide+-- priority. The default queue priority is -- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'. -- -- The driver implementation will attempt to skew hardware resource
src/Vulkan/Extensions/VK_EXT_global_priority_query.hs view
@@ -86,13 +86,14 @@ -- specific global queue priority in this extension? -- -- __RESOLVED__: No. Whether a caller has enough privilege goes with the--- OS, and the Vulkan driver can’t really guarantee that the privilege--- won’t change in between this query and the actual queue creation call.+-- OS, and the Vulkan driver cannot really guarantee that the privilege+-- will not change in between this query and the actual queue creation+-- call. -- -- 2) If more than 1 queue using global priority is requested, is there a -- good way to know which queue is failing the device creation? ----- __RESOLVED__: No. There isn’t a good way at this moment and it’s also+-- __RESOLVED__: No. There is not a good way at this moment, and it is also -- not quite actionable for the applications to know that because the -- information may not be accurate. Queue creation can fail because of -- runtime constraints like insufficient privilege or lack of resource, and@@ -237,8 +238,8 @@            zero  --- | VkQueueFamilyGlobalPriorityPropertiesEXT - return structure for queue--- family global priority info query+-- | VkQueueFamilyGlobalPriorityPropertiesEXT - Return structure for queue+-- family global priority information query -- -- = Description --
src/Vulkan/Extensions/VK_EXT_global_priority_query.hs-boot view
@@ -86,13 +86,14 @@ -- specific global queue priority in this extension? -- -- __RESOLVED__: No. Whether a caller has enough privilege goes with the--- OS, and the Vulkan driver can’t really guarantee that the privilege--- won’t change in between this query and the actual queue creation call.+-- OS, and the Vulkan driver cannot really guarantee that the privilege+-- will not change in between this query and the actual queue creation+-- call. -- -- 2) If more than 1 queue using global priority is requested, is there a -- good way to know which queue is failing the device creation? ----- __RESOLVED__: No. There isn’t a good way at this moment and it’s also+-- __RESOLVED__: No. There is not a good way at this moment, and it is also -- not quite actionable for the applications to know that because the -- information may not be accurate. Queue creation can fail because of -- runtime constraints like insufficient privilege or lack of resource, and
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs view
@@ -181,7 +181,7 @@   "dynamic" mkVkSetHdrMetadataEXT   :: FunPtr (Ptr Device_T -> Word32 -> Ptr SwapchainKHR -> Ptr HdrMetadataEXT -> IO ()) -> Ptr Device_T -> Word32 -> Ptr SwapchainKHR -> Ptr HdrMetadataEXT -> IO () --- | vkSetHdrMetadataEXT - function to set Hdr metadata+-- | vkSetHdrMetadataEXT - Set Hdr metadata -- -- == Valid Usage (Implicit) --@@ -234,7 +234,7 @@   pure $ ()  --- | VkXYColorEXT - structure to specify X,Y chromaticity coordinates+-- | VkXYColorEXT - Specify X,Y chromaticity coordinates -- -- = See Also --@@ -283,7 +283,7 @@            zero  --- | VkHdrMetadataEXT - structure to specify Hdr metadata+-- | VkHdrMetadataEXT - Specify Hdr metadata -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -783,7 +783,7 @@                    -- recorded.                    CommandBuffer                 -> -- | @pVertexInfo@ is a pointer to an array of 'MultiDrawInfoEXT' with vertex-                   -- info to be drawn.+                   -- information to be drawn.                    ("vertexInfo" ::: Vector MultiDrawInfoEXT)                 -> -- | @instanceCount@ is the number of instances to draw.                    ("instanceCount" ::: Word32)@@ -1425,7 +1425,7 @@                           -- recorded.                           CommandBuffer                        -> -- | @pIndexInfo@ is a pointer to an array of 'MultiDrawIndexedInfoEXT' with-                          -- index info to be drawn.+                          -- index information to be drawn.                           ("indexInfo" ::: Vector MultiDrawIndexedInfoEXT)                        -> -- | @instanceCount@ is the number of instances to draw.                           ("instanceCount" ::: Word32)
src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs view
@@ -53,9 +53,9 @@ -- -- DRM defines multiple device node types. Each physical device may have -- one primary node and one render node associated. Physical devices may--- have no primary node (e.g. if the device doesn’t have a display--- subsystem), may have no render node (e.g. if it’s a software rendering--- engine), or may have neither (e.g. if it’s a software rendering engine+-- have no primary node (e.g. if the device does not have a display+-- subsystem), may have no render node (e.g. if it is a software rendering+-- engine), or may have neither (e.g. if it is a software rendering engine -- without a display subsystem). -- -- To query DRM properties for a physical device, chain
src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot view
@@ -53,9 +53,9 @@ -- -- DRM defines multiple device node types. Each physical device may have -- one primary node and one render node associated. Physical devices may--- have no primary node (e.g. if the device doesn’t have a display--- subsystem), may have no render node (e.g. if it’s a software rendering--- engine), or may have neither (e.g. if it’s a software rendering engine+-- have no primary node (e.g. if the device does not have a display+-- subsystem), may have no render node (e.g. if it is a software rendering+-- engine), or may have neither (e.g. if it is a software rendering engine -- without a display subsystem). -- -- To query DRM properties for a physical device, chain
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs view
@@ -143,7 +143,7 @@ -- written to transform feedback buffers such that flat-shaded attributes -- have the same value when drawing the contents of the transform feedback -- buffer as they did in the original drawing when the transform feedback--- buffer was written (assuming the provoking vertex mode hasn’t changed,+-- buffer was written (assuming the provoking vertex mode has not changed, -- in APIs that support more than one mode). -- -- == Version History@@ -152,7 +152,7 @@ -- --     -   Added --         VkPhysicalDeviceProvokingVertexPropertiesEXT::transformFeedbackPreservesTriangleFanProvokingVertex---         to accommodate implementations that can’t change the transform+--         to accommodate implementations that cannot change the transform --         feedback vertex order for triangle fans. -- -- -   Revision 1(b), 2020-06-14 (Jesse Hall)
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot view
@@ -143,7 +143,7 @@ -- written to transform feedback buffers such that flat-shaded attributes -- have the same value when drawing the contents of the transform feedback -- buffer as they did in the original drawing when the transform feedback--- buffer was written (assuming the provoking vertex mode hasn’t changed,+-- buffer was written (assuming the provoking vertex mode has not changed, -- in APIs that support more than one mode). -- -- == Version History@@ -152,7 +152,7 @@ -- --     -   Added --         VkPhysicalDeviceProvokingVertexPropertiesEXT::transformFeedbackPreservesTriangleFanProvokingVertex---         to accommodate implementations that can’t change the transform+--         to accommodate implementations that cannot change the transform --         feedback vertex order for triangle fans. -- -- -   Revision 1(b), 2020-06-14 (Jesse Hall)
src/Vulkan/Extensions/VK_EXT_robustness2.hs view
@@ -58,7 +58,7 @@ -- This extension also adds support for “null descriptors”, where -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /can/ be used instead of a -- valid handle. Accesses to null descriptors have well-defined behavior,--- and don’t rely on robustness.+-- and do not rely on robustness. -- -- == New Structures --@@ -93,7 +93,7 @@ --     'PhysicalDeviceRobustness2PropertiesEXT'::@robustStorageBufferAccessSizeAlignment@ --     exist? ----- __RESOLVED__: Some implementations can’t efficiently tightly+-- __RESOLVED__: Some implementations cannot efficiently tightly -- bounds-check all buffer accesses. Rather, the size of the bound range is -- padded to some power of two multiple, up to 256 bytes for uniform -- buffers and up to 4 bytes for storage buffers, and that padded size is
src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot view
@@ -58,7 +58,7 @@ -- This extension also adds support for “null descriptors”, where -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /can/ be used instead of a -- valid handle. Accesses to null descriptors have well-defined behavior,--- and don’t rely on robustness.+-- and do not rely on robustness. -- -- == New Structures --@@ -93,7 +93,7 @@ --     'PhysicalDeviceRobustness2PropertiesEXT'::@robustStorageBufferAccessSizeAlignment@ --     exist? ----- __RESOLVED__: Some implementations can’t efficiently tightly+-- __RESOLVED__: Some implementations cannot efficiently tightly -- bounds-check all buffer accesses. Rather, the size of the bound range is -- padded to some power of two multiple, up to 256 bytes for uniform -- buffers and up to 4 bytes for storage buffers, and that padded size is
+ src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs view
@@ -0,0 +1,329 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_shader_atomic_float2 - device extension+--+-- == VK_EXT_shader_atomic_float2+--+-- [__Name String__]+--     @VK_EXT_shader_atomic_float2@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     274+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_EXT_shader_atomic_float@+--+-- [__Contact__]+--+--     -   Jason Ekstrand+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_shader_atomic_float2:%20&body=@jekstrand%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-08-14+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires the VK_EXT_shader_atomic_float+--         extension.+--+--     -   This extension requires+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float_min_max.html SPV_EXT_shader_atomic_float_min_max>+--         and+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float16_add.html SPV_EXT_shader_atomic_float16_add>+--+--     -   This extension provides API support for+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_atomic_float2.txt GLSL_EXT_shader_atomic_float2>+--+-- [__Contributors__]+--+--     -   Jason Ekstrand, Intel+--+-- == Description+--+-- This extension allows a shader to perform 16-bit floating-point atomic+-- operations on buffer and workgroup memory as well as floating-point+-- atomic minimum and maximum operations on buffer, workgroup, and image+-- memory. It advertises the SPIR-V @AtomicFloat16AddEXT@ capability which+-- allows atomic add operations on 16-bit floating-point numbers and the+-- SPIR-V @AtomicFloat16MinMaxEXT@, @AtomicFloat32MinMaxEXT@ and+-- @AtomicFloat64MinMaxEXT@ capabilities which allow atomic minimum and+-- maximum operations on floating-point numbers. The supported operations+-- include @OpAtomicFAddEXT@, @OpAtomicFMinEXT@ and @OpAtomicFMaxEXT@.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME'+--+-- -   'EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT'+--+-- == Issues+--+-- 1) Should this extension add support for 16-bit image atomics?+--+-- __RESOLVED__: No. While Vulkan supports creating storage images with+-- 'Vulkan.Core10.Enums.Format.FORMAT_R16_SFLOAT' and doing load and store+-- on them, the data in the shader has a 32-bit representation. Vulkan+-- currently has no facility for even basic reading or writing such images+-- using 16-bit float values in the shader. Adding such functionality would+-- be required before 16-bit image atomics would make sense and is outside+-- the scope of this extension.+--+-- == New SPIR-V Capabilities+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+--+-- == Version History+--+-- -   Revision 1, 2020-08-14 (Jason Ekstrand)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 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_shader_atomic_float2  ( PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..)+                                                      , EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION+                                                      , pattern EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION+                                                      , EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+                                                      , pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+                                                      ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+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 Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT))+-- | VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT - Structure describing+-- features supported by VK_EXT_shader_atomic_float2+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT' 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. 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderAtomicFloat2FeaturesEXT = PhysicalDeviceShaderAtomicFloat2FeaturesEXT+  { -- | #features-shaderBufferFloat16Atomics# @shaderBufferFloat16Atomics@+    -- indicates whether shaders /can/ perform 16-bit floating-point load,+    -- store, and exchange atomic operations on storage buffers.+    shaderBufferFloat16Atomics :: Bool+  , -- | #features-shaderBufferFloat16AtomicAdd# @shaderBufferFloat16AtomicAdd@+    -- indicates whether shaders /can/ perform 16-bit floating-point add atomic+    -- operations on storage buffers.+    shaderBufferFloat16AtomicAdd :: Bool+  , -- | #features-shaderBufferFloat16AtomicMinMax#+    -- @shaderBufferFloat16AtomicMinMax@ indicates whether shaders /can/+    -- perform 16-bit floating-point min and max atomic operations on storage+    -- buffers.+    shaderBufferFloat16AtomicMinMax :: Bool+  , -- | #features-shaderBufferFloat32AtomicMinMax#+    -- @shaderBufferFloat32AtomicMinMax@ indicates whether shaders /can/+    -- perform 32-bit floating-point min and max atomic operations on storage+    -- buffers.+    shaderBufferFloat32AtomicMinMax :: Bool+  , -- | #features-shaderBufferFloat64AtomicMinMax#+    -- @shaderBufferFloat64AtomicMinMax@ indicates whether shaders /can/+    -- perform 64-bit floating-point min and max atomic operations on storage+    -- buffers.+    shaderBufferFloat64AtomicMinMax :: Bool+  , -- | #features-shaderSharedFloat16Atomics# @shaderSharedFloat16Atomics@+    -- indicates whether shaders /can/ perform 16-bit floating-point load,+    -- store and exchange atomic operations on shared memory.+    shaderSharedFloat16Atomics :: Bool+  , -- | #features-shaderSharedFloat16AtomicAdd# @shaderSharedFloat16AtomicAdd@+    -- indicates whether shaders /can/ perform 16-bit floating-point add atomic+    -- operations on shared memory.+    shaderSharedFloat16AtomicAdd :: Bool+  , -- | #features-shaderSharedFloat16AtomicMinMax#+    -- @shaderSharedFloat16AtomicMinMax@ indicates whether shaders /can/+    -- perform 16-bit floating-point min and max atomic operations on shared+    -- memory.+    shaderSharedFloat16AtomicMinMax :: Bool+  , -- | #features-shaderSharedFloat32AtomicMinMax#+    -- @shaderSharedFloat32AtomicMinMax@ indicates whether shaders /can/+    -- perform 32-bit floating-point min and max atomic operations on shared+    -- memory.+    shaderSharedFloat32AtomicMinMax :: Bool+  , -- | #features-shaderSharedFloat64AtomicMinMax#+    -- @shaderSharedFloat64AtomicMinMax@ indicates whether shaders /can/+    -- perform 64-bit floating-point min and max atomic operations on shared+    -- memory.+    shaderSharedFloat64AtomicMinMax :: Bool+  , -- | #features-shaderImageFloat32AtomicMinMax#+    -- @shaderImageFloat32AtomicMinMax@ indicates whether shaders /can/ perform+    -- 32-bit floating-point min and max atomic image operations.+    shaderImageFloat32AtomicMinMax :: Bool+  , -- | #features-sparseImageFloat32AtomicMinMax#+    -- @sparseImageFloat32AtomicMinMax@ indicates whether 32-bit floating-point+    -- min and max atomic operations /can/ be used on sparse images.+    sparseImageFloat32AtomicMinMax :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderAtomicFloat2FeaturesEXT)+#endif+deriving instance Show PhysicalDeviceShaderAtomicFloat2FeaturesEXT++instance ToCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT where+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceShaderAtomicFloat2FeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat16Atomics))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat16AtomicAdd))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat16AtomicMinMax))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat32AtomicMinMax))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat64AtomicMinMax))+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat16Atomics))+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat16AtomicAdd))+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat16AtomicMinMax))+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat32AtomicMinMax))+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat64AtomicMinMax))+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (shaderImageFloat32AtomicMinMax))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (sparseImageFloat32AtomicMinMax))+    f+  cStructSize = 64+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT where+  peekCStruct p = do+    shaderBufferFloat16Atomics <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    shaderBufferFloat16AtomicAdd <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    shaderBufferFloat16AtomicMinMax <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    shaderBufferFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+    shaderBufferFloat64AtomicMinMax <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+    shaderSharedFloat16Atomics <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+    shaderSharedFloat16AtomicAdd <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+    shaderSharedFloat16AtomicMinMax <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+    shaderSharedFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))+    shaderSharedFloat64AtomicMinMax <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))+    shaderImageFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+    sparseImageFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+    pure $ PhysicalDeviceShaderAtomicFloat2FeaturesEXT+             (bool32ToBool shaderBufferFloat16Atomics) (bool32ToBool shaderBufferFloat16AtomicAdd) (bool32ToBool shaderBufferFloat16AtomicMinMax) (bool32ToBool shaderBufferFloat32AtomicMinMax) (bool32ToBool shaderBufferFloat64AtomicMinMax) (bool32ToBool shaderSharedFloat16Atomics) (bool32ToBool shaderSharedFloat16AtomicAdd) (bool32ToBool shaderSharedFloat16AtomicMinMax) (bool32ToBool shaderSharedFloat32AtomicMinMax) (bool32ToBool shaderSharedFloat64AtomicMinMax) (bool32ToBool shaderImageFloat32AtomicMinMax) (bool32ToBool sparseImageFloat32AtomicMinMax)++instance Storable PhysicalDeviceShaderAtomicFloat2FeaturesEXT where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderAtomicFloat2FeaturesEXT where+  zero = PhysicalDeviceShaderAtomicFloat2FeaturesEXT+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++type EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION"+pattern EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1+++type EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2"++-- No documentation found for TopLevel "VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME"+pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2"+
+ src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot view
@@ -0,0 +1,137 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_shader_atomic_float2 - device extension+--+-- == VK_EXT_shader_atomic_float2+--+-- [__Name String__]+--     @VK_EXT_shader_atomic_float2@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     274+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_EXT_shader_atomic_float@+--+-- [__Contact__]+--+--     -   Jason Ekstrand+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_shader_atomic_float2:%20&body=@jekstrand%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-08-14+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires the VK_EXT_shader_atomic_float+--         extension.+--+--     -   This extension requires+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float_min_max.html SPV_EXT_shader_atomic_float_min_max>+--         and+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float16_add.html SPV_EXT_shader_atomic_float16_add>+--+--     -   This extension provides API support for+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_atomic_float2.txt GLSL_EXT_shader_atomic_float2>+--+-- [__Contributors__]+--+--     -   Jason Ekstrand, Intel+--+-- == Description+--+-- This extension allows a shader to perform 16-bit floating-point atomic+-- operations on buffer and workgroup memory as well as floating-point+-- atomic minimum and maximum operations on buffer, workgroup, and image+-- memory. It advertises the SPIR-V @AtomicFloat16AddEXT@ capability which+-- allows atomic add operations on 16-bit floating-point numbers and the+-- SPIR-V @AtomicFloat16MinMaxEXT@, @AtomicFloat32MinMaxEXT@ and+-- @AtomicFloat64MinMaxEXT@ capabilities which allow atomic minimum and+-- maximum operations on floating-point numbers. The supported operations+-- include @OpAtomicFAddEXT@, @OpAtomicFMinEXT@ and @OpAtomicFMaxEXT@.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME'+--+-- -   'EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT'+--+-- == Issues+--+-- 1) Should this extension add support for 16-bit image atomics?+--+-- __RESOLVED__: No. While Vulkan supports creating storage images with+-- 'Vulkan.Core10.Enums.Format.FORMAT_R16_SFLOAT' and doing load and store+-- on them, the data in the shader has a 32-bit representation. Vulkan+-- currently has no facility for even basic reading or writing such images+-- using 16-bit float values in the shader. Adding such functionality would+-- be required before 16-bit image atomics would make sense and is outside+-- the scope of this extension.+--+-- == New SPIR-V Capabilities+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+--+-- == Version History+--+-- -   Revision 1, 2020-08-14 (Jason Ekstrand)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 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_shader_atomic_float2  (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderAtomicFloat2FeaturesEXT++instance ToCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT+instance Show PhysicalDeviceShaderAtomicFloat2FeaturesEXT++instance FromCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT+
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs view
@@ -44,7 +44,7 @@ -- -- This extension adds more expressive alignment requirements for uniform -- and storage texel buffers. Some implementations have single texel--- alignment requirements that can’t be expressed via+-- alignment requirements that cannot be expressed via -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@. -- -- == New Structures
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot view
@@ -44,7 +44,7 @@ -- -- This extension adds more expressive alignment requirements for uniform -- and storage texel buffers. Some implementations have single texel--- alignment requirements that can’t be expressed via+-- alignment requirements that cannot be expressed via -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@. -- -- == New Structures
src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs view
@@ -112,7 +112,7 @@ -- 2) Should we introduce new format enums for HDR? -- -- Yes. Vulkan 1.0 describes the ASTC format enums as UNORM, e.g.--- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it’s+-- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it is -- confusing to make these contain HDR data. Note that the OpenGL (ES) -- extensions did not make this distinction because a single ASTC HDR -- texture may contain both unorm and float blocks. Implementations /may/
src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot view
@@ -112,7 +112,7 @@ -- 2) Should we introduce new format enums for HDR? -- -- Yes. Vulkan 1.0 describes the ASTC format enums as UNORM, e.g.--- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it’s+-- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it is -- confusing to make these contain HDR data. Note that the OpenGL (ES) -- extensions did not make this distinction because a single ASTC HDR -- texture may contain both unorm and float blocks. Implementations /may/
+ src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs view
@@ -0,0 +1,411 @@+{-# language CPP #-}+-- | = Name+--+-- VK_HUAWEI_invocation_mask - device extension+--+-- == VK_HUAWEI_invocation_mask+--+-- [__Name String__]+--     @VK_HUAWEI_invocation_mask@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     371+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_ray_tracing_pipeline@+--+--     -   Requires @VK_KHR_synchronization2@+--+-- [__Contact__]+--+--     -   Yunpeng Zhu+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_HUAWEI_invocation_mask:%20&body=@yunxingzhu%20 >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_invocation_mask.asciidoc VK_HUAWEI_invocation_mask>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-05-27+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires+--         <VK_KHR_ray_tracing_pipeline.html VK_KHR_ray_tracing_pipeline>,+--         which allow to bind an invocation mask image before the trace+--         ray command+--+--     -   This extension requires+--         <VK_KHR_synchronization2.html VK_KHR_synchronization2>, which+--         allows new pipeline stage for the invocation mask image+--+-- [__Contributors__]+--+--     -   Yunpeng Zhu, HuaWei+--+-- == Description+--+-- The rays to trace may be sparse in some use cases. For example, the+-- scene only have a few regions to reflect. Providing an invocation mask+-- image to the trace ray commands could potentially give the hardware the+-- hint to do certain optimization without invoking an additional pass to+-- compact the ray buffer.+--+-- == New Commands+--+-- -   'cmdBindInvocationMaskHUAWEI'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceInvocationMaskFeaturesHUAWEI'+--+-- == New Enum Constants+--+-- -   'HUAWEI_INVOCATION_MASK_EXTENSION_NAME'+--+-- -   'HUAWEI_INVOCATION_MASK_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlagBits2KHR':+--+--     -   'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI'+--+-- -   Extending+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+--+--     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+--+--     -   'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI'+--+-- == Examples+--+-- RT mask is updated before each traceRay.+--+-- Step 1. Generate InvocationMask.+--+-- > //the rt mask image bind as color attachment in the fragment shader+-- > Layout(location = 2) out vec4 outRTmask+-- > vec4 mask = vec4(x,x,x,x);+-- > outRTmask = mask;+--+-- Step 2. traceRay with InvocationMask+--+-- > vkCmdBindPipeline(+-- >     commandBuffers[imageIndex],+-- >     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, m_rtPipeline);+-- >     vkCmdBindDescriptorSets(commandBuffers[imageIndex],+-- >     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV,+-- >     m_rtPipelineLayout, 0, 1, &m_rtDescriptorSet,+-- >     0, nullptr);+-- >+-- > vkCmdBindInvocationMaskHUAWEI(+-- >     commandBuffers[imageIndex],+-- >     InvocationMaskimageView,+-- >     InvocationMaskimageLayout);+-- >     vkCmdTraceRaysKHR(commandBuffers[imageIndex],+-- >     pRaygenShaderBindingTable,+-- >     pMissShaderBindingTable,+-- >     swapChainExtent.width,+-- >     swapChainExtent.height, 1);+--+-- == Version History+--+-- -   Revision 1, 2021-05-27 (Yunpeng Zhu)+--+--     -   Initial draft.+--+-- = See Also+--+-- 'PhysicalDeviceInvocationMaskFeaturesHUAWEI',+-- 'cmdBindInvocationMaskHUAWEI'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_HUAWEI_invocation_mask  ( cmdBindInvocationMaskHUAWEI+                                                    , PhysicalDeviceInvocationMaskFeaturesHUAWEI(..)+                                                    , HUAWEI_INVOCATION_MASK_SPEC_VERSION+                                                    , pattern HUAWEI_INVOCATION_MASK_SPEC_VERSION+                                                    , HUAWEI_INVOCATION_MASK_EXTENSION_NAME+                                                    , pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME+                                                    , AccessFlagBits2KHR(..)+                                                    , AccessFlags2KHR+                                                    , PipelineStageFlagBits2KHR(..)+                                                    , PipelineStageFlags2KHR+                                                    , Flags64+                                                    ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+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.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdBindInvocationMaskHUAWEI))+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(..))+import Vulkan.Core10.Handles (ImageView)+import Vulkan.Core10.Handles (ImageView(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI))+import Vulkan.Extensions.VK_KHR_synchronization2 (AccessFlagBits2KHR(..))+import Vulkan.Extensions.VK_KHR_synchronization2 (AccessFlags2KHR)+import Vulkan.Core10.FundamentalTypes (Flags64)+import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlagBits2KHR(..))+import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlags2KHR)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBindInvocationMaskHUAWEI+  :: FunPtr (Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ()) -> Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ()++-- | vkCmdBindInvocationMaskHUAWEI - Bind an invocation mask image on a+-- command buffer+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-None-04976# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977# If @imageView@+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be a+--     valid 'Vulkan.Core10.Handles.ImageView' handle of type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04978# If @imageView@+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have a+--     format of 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04979# If @imageView@+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI'+--     set+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04980# If @imageView@+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@+--     /must/ be 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-width-04981# Thread mask image+--     resolution must match the @width@ and @height@ in+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR'+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-None-04982# Each element in the+--     invocation mask image /must/ have the value @0@ or @1@. The value 1+--     means the invocation is active+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-width-04983# @width@ in+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR'+--     should be 1+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-parameter# If+--     @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'+--     handle+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-imageLayout-parameter#+--     @imageLayout@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-renderpass# This command /must/+--     only be called outside of a render pass instance+--+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-commonparent# Both of+--     @commandBuffer@, and @imageView@ that are valid handles of+--     non-ignored parameters /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Compute                                                                                                               |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Handles.ImageView'+cmdBindInvocationMaskHUAWEI :: forall io+                             . (MonadIO io)+                            => -- | @commandBuffer@ is the command buffer into which the command will be+                               -- recorded+                               CommandBuffer+                            -> -- | @imageView@ is an image view handle that specifies the invocation mask+                               -- image @imageView@ /may/ be set to+                               -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', which is equivalent to+                               -- specifying a view of an image filled with ones value.+                               ImageView+                            -> -- | @imageLayout@ is the layout that the image subresources accessible from+                               -- @imageView@ will be in when the invocation mask image is accessed+                               ImageLayout+                            -> io ()+cmdBindInvocationMaskHUAWEI commandBuffer imageView imageLayout = liftIO $ do+  let vkCmdBindInvocationMaskHUAWEIPtr = pVkCmdBindInvocationMaskHUAWEI (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdBindInvocationMaskHUAWEIPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindInvocationMaskHUAWEI is null" Nothing Nothing+  let vkCmdBindInvocationMaskHUAWEI' = mkVkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEIPtr+  traceAroundEvent "vkCmdBindInvocationMaskHUAWEI" (vkCmdBindInvocationMaskHUAWEI' (commandBufferHandle (commandBuffer)) (imageView) (imageLayout))+  pure $ ()+++-- | VkPhysicalDeviceInvocationMaskFeaturesHUAWEI - Structure describing+-- invocation mask features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceInvocationMaskFeaturesHUAWEI' 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. 'PhysicalDeviceInvocationMaskFeaturesHUAWEI' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceInvocationMaskFeaturesHUAWEI = PhysicalDeviceInvocationMaskFeaturesHUAWEI+  { -- | #features-invocationMask# @invocationMask@ indicates that the+    -- implementation supports the use of an invocation mask image to optimize+    -- the ray dispatch.+    invocationMask :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceInvocationMaskFeaturesHUAWEI)+#endif+deriving instance Show PhysicalDeviceInvocationMaskFeaturesHUAWEI++instance ToCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceInvocationMaskFeaturesHUAWEI{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (invocationMask))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI where+  peekCStruct p = do+    invocationMask <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceInvocationMaskFeaturesHUAWEI+             (bool32ToBool invocationMask)++instance Storable PhysicalDeviceInvocationMaskFeaturesHUAWEI where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceInvocationMaskFeaturesHUAWEI where+  zero = PhysicalDeviceInvocationMaskFeaturesHUAWEI+           zero+++type HUAWEI_INVOCATION_MASK_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION"+pattern HUAWEI_INVOCATION_MASK_SPEC_VERSION :: forall a . Integral a => a+pattern HUAWEI_INVOCATION_MASK_SPEC_VERSION = 1+++type HUAWEI_INVOCATION_MASK_EXTENSION_NAME = "VK_HUAWEI_invocation_mask"++-- No documentation found for TopLevel "VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME"+pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME = "VK_HUAWEI_invocation_mask"+
+ src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot view
@@ -0,0 +1,162 @@+{-# language CPP #-}+-- | = Name+--+-- VK_HUAWEI_invocation_mask - device extension+--+-- == VK_HUAWEI_invocation_mask+--+-- [__Name String__]+--     @VK_HUAWEI_invocation_mask@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     371+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_ray_tracing_pipeline@+--+--     -   Requires @VK_KHR_synchronization2@+--+-- [__Contact__]+--+--     -   Yunpeng Zhu+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_HUAWEI_invocation_mask:%20&body=@yunxingzhu%20 >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_invocation_mask.asciidoc VK_HUAWEI_invocation_mask>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-05-27+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires+--         <VK_KHR_ray_tracing_pipeline.html VK_KHR_ray_tracing_pipeline>,+--         which allow to bind an invocation mask image before the trace+--         ray command+--+--     -   This extension requires+--         <VK_KHR_synchronization2.html VK_KHR_synchronization2>, which+--         allows new pipeline stage for the invocation mask image+--+-- [__Contributors__]+--+--     -   Yunpeng Zhu, HuaWei+--+-- == Description+--+-- The rays to trace may be sparse in some use cases. For example, the+-- scene only have a few regions to reflect. Providing an invocation mask+-- image to the trace ray commands could potentially give the hardware the+-- hint to do certain optimization without invoking an additional pass to+-- compact the ray buffer.+--+-- == New Commands+--+-- -   'cmdBindInvocationMaskHUAWEI'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceInvocationMaskFeaturesHUAWEI'+--+-- == New Enum Constants+--+-- -   'HUAWEI_INVOCATION_MASK_EXTENSION_NAME'+--+-- -   'HUAWEI_INVOCATION_MASK_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlagBits2KHR':+--+--     -   'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI'+--+-- -   Extending+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+--+--     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+--+--     -   'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI'+--+-- == Examples+--+-- RT mask is updated before each traceRay.+--+-- Step 1. Generate InvocationMask.+--+-- > //the rt mask image bind as color attachment in the fragment shader+-- > Layout(location = 2) out vec4 outRTmask+-- > vec4 mask = vec4(x,x,x,x);+-- > outRTmask = mask;+--+-- Step 2. traceRay with InvocationMask+--+-- > vkCmdBindPipeline(+-- >     commandBuffers[imageIndex],+-- >     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, m_rtPipeline);+-- >     vkCmdBindDescriptorSets(commandBuffers[imageIndex],+-- >     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV,+-- >     m_rtPipelineLayout, 0, 1, &m_rtDescriptorSet,+-- >     0, nullptr);+-- >+-- > vkCmdBindInvocationMaskHUAWEI(+-- >     commandBuffers[imageIndex],+-- >     InvocationMaskimageView,+-- >     InvocationMaskimageLayout);+-- >     vkCmdTraceRaysKHR(commandBuffers[imageIndex],+-- >     pRaygenShaderBindingTable,+-- >     pMissShaderBindingTable,+-- >     swapChainExtent.width,+-- >     swapChainExtent.height, 1);+--+-- == Version History+--+-- -   Revision 1, 2021-05-27 (Yunpeng Zhu)+--+--     -   Initial draft.+--+-- = See Also+--+-- 'PhysicalDeviceInvocationMaskFeaturesHUAWEI',+-- 'cmdBindInvocationMaskHUAWEI'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_HUAWEI_invocation_mask  (PhysicalDeviceInvocationMaskFeaturesHUAWEI) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceInvocationMaskFeaturesHUAWEI++instance ToCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI+instance Show PhysicalDeviceInvocationMaskFeaturesHUAWEI++instance FromCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI+
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -788,7 +788,7 @@ -- -- __RESOLVED__: It is primarily intended for API layering. In DXR, the -- acceleration structure is basically just a buffer in a special layout,--- and you don’t know at creation time whether it will be used as a top or+-- and you do not know at creation time whether it will be used as a top or -- bottom level acceleration structure. We thus added a generic -- acceleration structure type whose type is unknown at creation time, but -- is specified at build time instead. Applications which are written
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot view
@@ -788,7 +788,7 @@ -- -- __RESOLVED__: It is primarily intended for API layering. In DXR, the -- acceleration structure is basically just a buffer in a special layout,--- and you don’t know at creation time whether it will be used as a top or+-- and you do not know at creation time whether it will be used as a top or -- bottom level acceleration structure. We thus added a generic -- acceleration structure type whose type is unknown at creation time, but -- is specified at build time instead. Applications which are written
src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs view
@@ -158,8 +158,8 @@ -- >     [ hOp ] ( ) -- >     { -- >         vkDeferredOperationJoinKHR(device, hOp);--- > 		// in a job system, a return of VK_THREAD_IDLE_KHR should queue another--- > 		// job, but it's not functionally required+-- >                 // in a job system, a return of VK_THREAD_IDLE_KHR should queue another+-- >                 // job, but it is not functionally required -- >     } -- >   ); -- > }
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -100,7 +100,7 @@ -- 'Vulkan.Core10.Handles.Semaphore' instead of a -- 'Vulkan.Core10.Handles.Fence', and applications can check status or wait -- on the D3D12 fence using non-Vulkan APIs. The convenience of being able--- to do these operations on 'Vulkan.Core10.Handles.Fence' objects doesn’t+-- to do these operations on 'Vulkan.Core10.Handles.Fence' objects does not -- justify the extra API complexity. -- -- == Version History@@ -469,18 +469,18 @@ -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo'--- is not present in the same @pNext@ chain, this structure is ignored.+-- is not inluded in the same @pNext@ chain, this structure is ignored. -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo'--- is present in the @pNext@ chain of 'Vulkan.Core10.Fence.FenceCreateInfo'--- with a Windows @handleType@, but either 'ExportFenceWin32HandleInfoKHR'--- is not present in the @pNext@ chain, or if it is but @pAttributes@ is--- set to @NULL@, default security descriptor values will be used, and--- child processes created by the application will not inherit the handle,--- as described in the MSDN documentation for “Synchronization Object--- Security and Access Rights”1. Further, if the structure is not present,--- the access rights will be+-- is included in the @pNext@ chain of+-- 'Vulkan.Core10.Fence.FenceCreateInfo' with a Windows @handleType@, but+-- either 'ExportFenceWin32HandleInfoKHR' is not included in the @pNext@+-- chain, or if it is but @pAttributes@ is set to @NULL@, default security+-- descriptor values will be used, and child processes created by the+-- application will not inherit the handle, as described in the MSDN+-- documentation for “Synchronization Object Security and Access Rights”1.+-- Further, if the structure is not present, the access rights will be -- -- @DXGI_SHARED_RESOURCE_READ@ | @DXGI_SHARED_RESOURCE_WRITE@ --
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot view
@@ -100,7 +100,7 @@ -- 'Vulkan.Core10.Handles.Semaphore' instead of a -- 'Vulkan.Core10.Handles.Fence', and applications can check status or wait -- on the D3D12 fence using non-Vulkan APIs. The convenience of being able--- to do these operations on 'Vulkan.Core10.Handles.Fence' objects doesn’t+-- to do these operations on 'Vulkan.Core10.Handles.Fence' objects does not -- justify the extra API complexity. -- -- == Version History
src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs view
@@ -174,7 +174,7 @@ -- 'ExternalBufferPropertiesKHR' structs need to include a list of memory -- type bits that support the given handle type? ----- __PROPOSED RESOLUTION__: No. The memory types that don’t support the+-- __PROPOSED RESOLUTION__: No. The memory types that do not support the -- handle types will simply be filtered out of the results returned by -- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' and -- 'Vulkan.Core10.MemoryManagement.getBufferMemoryRequirements' when a set@@ -184,7 +184,7 @@ -- -- __PROPOSED RESOLUTION__: Perhaps. However, defining the handle type bits -- does very little and does not require any platform-specific types on its--- own, and it’s easier to maintain the bitfield values in a single+-- own, and it is easier to maintain the bitfield values in a single -- extension for now. Presumably more handle types could be added by -- separate extensions though, and it would be midly weird to have some -- platform-specific ones defined in the core spec and some in extensions
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -320,7 +320,7 @@   pure $ (pMemoryFdProperties)  --- | VkImportMemoryFdInfoKHR - import memory created on the same physical+-- | VkImportMemoryFdInfoKHR - Import memory created on the same physical -- device from a file descriptor -- -- = Description
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs view
@@ -340,7 +340,7 @@   pure $ (pMemoryWin32HandleProperties)  --- | VkImportMemoryWin32HandleInfoKHR - import Win32 memory created on the+-- | VkImportMemoryWin32HandleInfoKHR - Import Win32 memory created on the -- same physical device -- -- = Description@@ -486,13 +486,13 @@ -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo'--- is not present in the same @pNext@ chain, this structure is ignored.+-- is not included in the same @pNext@ chain, this structure is ignored. -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo'--- is present in the @pNext@ chain of+-- is included in the @pNext@ chain of -- 'Vulkan.Core10.Memory.MemoryAllocateInfo' with a Windows @handleType@,--- but either 'ExportMemoryWin32HandleInfoKHR' is not present in the+-- but either 'ExportMemoryWin32HandleInfoKHR' is not included in the -- @pNext@ chain, or if it is but @pAttributes@ is set to @NULL@, default -- security descriptor values will be used, and child processes created by -- the application will not inherit the handle, as described in the MSDN
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -543,14 +543,14 @@ -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo'--- is not present in the same @pNext@ chain, this structure is ignored.+-- is not included in the same @pNext@ chain, this structure is ignored. -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo'--- is present in the @pNext@ chain of+-- is included in the @pNext@ chain of -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo' with a Windows -- @handleType@, but either 'ExportSemaphoreWin32HandleInfoKHR' is not--- present in the @pNext@ chain, or if it is but @pAttributes@ is set to+-- included in the @pNext@ chain, or if it is but @pAttributes@ is set to -- @NULL@, default security descriptor values will be used, and child -- processes created by the application will not inherit the handle, as -- described in the MSDN documentation for “Synchronization Object Security
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -1008,9 +1008,10 @@     -- attachment. @maxFragmentShadingRateAttachmentTexelSizeAspectRatio@     -- /must/ be a power-of-two value, and /must/ be less than or equal to     -- max(@maxFragmentShadingRateAttachmentTexelSize.width@ \/-    -- minFragmentShadingRateAttachmentTexelSize.height,+    -- @minFragmentShadingRateAttachmentTexelSize.height@,     -- @maxFragmentShadingRateAttachmentTexelSize.height@ \/-    -- minFragmentShadingRateAttachmentTexelSize.width). It /must/ be 0 if the+    -- @minFragmentShadingRateAttachmentTexelSize.width@). It /must/ be 0 if+    -- the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>     -- feature is not supported.     maxFragmentShadingRateAttachmentTexelSizeAspectRatio :: Word32@@ -1082,7 +1083,7 @@     -- and the sample count reported by     -- @maxFragmentShadingRateRasterizationSamples@.     -- @maxFragmentShadingRateCoverageSamples@ /must/ be less than or equal to-    -- @maxSampleMaskWords@ * 32 if @fragmentShadingRateWithShaderSampleMask@+    -- @maxSampleMaskWords@ × 32 if @fragmentShadingRateWithShaderSampleMask@     -- is supported. This limit is purely informational, and is not validated.     maxFragmentShadingRateCoverageSamples :: Word32   , -- | #limits-maxFragmentShadingRateRasterizationSamples#@@ -1148,7 +1149,7 @@     fragmentShadingRateWithCustomSampleLocations :: Bool   , -- | #limits-fragmentShadingRateStrictMultiplyCombiner#     -- @fragmentShadingRateStrictMultiplyCombiner@ specifies whether-    -- VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR accurately performs a+    -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' accurately performs a     -- multiplication or not. Implementations where this value is     -- 'Vulkan.Core10.FundamentalTypes.FALSE' will instead combine rates with     -- an addition. If @fragmentShadingRateNonTrivialCombinerOps@ is
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs view
@@ -105,7 +105,7 @@ -- __RESOLVED__: -- -- -   'getPhysicalDeviceDisplayProperties2KHR': No. The only current input---     is a 'Vulkan.Core10.Handles.PhysicalDevice'. Other inputs wouldn’t+--     is a 'Vulkan.Core10.Handles.PhysicalDevice'. Other inputs would not --     make sense. -- -- -   'getPhysicalDeviceDisplayPlaneProperties2KHR': No. The only current
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot view
@@ -105,7 +105,7 @@ -- __RESOLVED__: -- -- -   'getPhysicalDeviceDisplayProperties2KHR': No. The only current input---     is a 'Vulkan.Core10.Handles.PhysicalDevice'. Other inputs wouldn’t+--     is a 'Vulkan.Core10.Handles.PhysicalDevice'. Other inputs would not --     make sense. -- -- -   'getPhysicalDeviceDisplayPlaneProperties2KHR': No. The only current
src/Vulkan/Extensions/VK_KHR_performance_query.hs view
@@ -427,7 +427,7 @@ -- >   sizeof(VkPerformanceCounterResultKHR), -- >   NULL); -- >--- > // recordedCounters is filled with our counters, we'll look at one for posterity+-- > // recordedCounters is filled with our counters, we will look at one for posterity -- > switch (counters[0].storage) { -- >   case VK_PERFORMANCE_COUNTER_STORAGE_INT32: -- >     // use recordCounters[0].int32 to get at the counter result!
src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot view
@@ -427,7 +427,7 @@ -- >   sizeof(VkPerformanceCounterResultKHR), -- >   NULL); -- >--- > // recordedCounters is filled with our counters, we'll look at one for posterity+-- > // recordedCounters is filled with our counters, we will look at one for posterity -- > switch (counters[0].storage) { -- >   case VK_PERFORMANCE_COUNTER_STORAGE_INT32: -- >     // use recordCounters[0].int32 to get at the counter result!
src/Vulkan/Extensions/VK_KHR_portability_subset.hs view
@@ -34,6 +34,8 @@ --     -   Bill Hollings --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_portability_subset:%20&body=@billhollings%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] --     2020-07-21 --
src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot view
@@ -34,6 +34,8 @@ --     -   Bill Hollings --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_portability_subset:%20&body=@billhollings%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] --     2020-07-21 --
+ src/Vulkan/Extensions/VK_KHR_present_id.hs view
@@ -0,0 +1,346 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_present_id - device extension+--+-- == VK_KHR_present_id+--+-- [__Name String__]+--     @VK_KHR_present_id@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     295+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_swapchain@+--+-- [__Contact__]+--+--     -   Keith Packard+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_present_id:%20&body=@keithp%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2019-05-15+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Keith Packard, Valve+--+--     -   Ian Elliott, Google+--+--     -   Alon Or-bach, Samsung+--+-- == Description+--+-- This device extension allows an application that uses the+-- @VK_KHR_swapchain@ extension to provide an identifier for present+-- operations on a swapchain. An application /can/ use this to reference+-- specific present operations in other extensions.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDevicePresentIdFeaturesKHR'+--+-- -   Extending 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR':+--+--     -   'PresentIdKHR'+--+-- == New Enum Constants+--+-- -   'KHR_PRESENT_ID_EXTENSION_NAME'+--+-- -   'KHR_PRESENT_ID_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRESENT_ID_KHR'+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- -   Revision 1, 2019-05-15 (Keith Packard)+--+--     -   Initial version+--+-- = See Also+--+-- 'PhysicalDevicePresentIdFeaturesKHR', 'PresentIdKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_present_id  ( PhysicalDevicePresentIdFeaturesKHR(..)+                                            , PresentIdKHR(..)+                                            , KHR_PRESENT_ID_SPEC_VERSION+                                            , pattern KHR_PRESENT_ID_SPEC_VERSION+                                            , KHR_PRESENT_ID_EXTENSION_NAME+                                            , pattern KHR_PRESENT_ID_EXTENSION_NAME+                                            ) where++import Control.Monad (unless)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+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 qualified Data.Vector (null)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+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 GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Word (Word64)+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.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRESENT_ID_KHR))+-- | VkPhysicalDevicePresentIdFeaturesKHR - Structure indicating support for+-- present id+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePresentIdFeaturesKHR' 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. 'PhysicalDevicePresentIdFeaturesKHR' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePresentIdFeaturesKHR = PhysicalDevicePresentIdFeaturesKHR+  { -- | #features-presentId# @presentId@ indicates that the implementation+    -- supports specifying present ID values in the 'PresentIdKHR' extension to+    -- the 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' struct.+    presentId :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePresentIdFeaturesKHR)+#endif+deriving instance Show PhysicalDevicePresentIdFeaturesKHR++instance ToCStruct PhysicalDevicePresentIdFeaturesKHR where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDevicePresentIdFeaturesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (presentId))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDevicePresentIdFeaturesKHR where+  peekCStruct p = do+    presentId <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDevicePresentIdFeaturesKHR+             (bool32ToBool presentId)++instance Storable PhysicalDevicePresentIdFeaturesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePresentIdFeaturesKHR where+  zero = PhysicalDevicePresentIdFeaturesKHR+           zero+++-- | VkPresentIdKHR - The list of presentation identifiers+--+-- = Description+--+-- For applications to be able to reference specific presentation events+-- queued by a call to+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', an identifier+-- needs to be associated with them. When the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-presentId presentId>+-- feature is enabled, applications /can/ include the 'PresentIdKHR'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' structure to supply+-- identifiers.+--+-- Each 'Vulkan.Extensions.Handles.SwapchainKHR' has a presentId associated+-- with it. This value is initially set to zero when the+-- 'Vulkan.Extensions.Handles.SwapchainKHR' is created.+--+-- When a 'PresentIdKHR' structure with a non-NULL @pPresentIds@ is+-- included in the @pNext@ chain of a+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' structure, each+-- @pSwapchains@ entry has a presentId associated in the @pPresentIds@+-- array at the same index as the swapchain in the @pSwapchains@ array. If+-- this presentId is non-zero, then the application /can/ later use this+-- value to refer to that image presentation. A value of zero indicates+-- that this presentation has no associated presentId. A non-zero presentId+-- /must/ be greater than any non-zero presentId passed previously by the+-- application for the same swapchain.+--+-- There is no requirement for any precise timing relationship between the+-- presentation of the image to the user and the update of the presentId+-- value, but implementations /should/ make this as close as possible to+-- the presentation of the first pixel in the new image to the user.+--+-- == Valid Usage+--+-- -   #VUID-VkPresentIdKHR-swapchainCount-04998# @swapchainCount@ /must/+--     be the same value as+--     'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR'::@swapchainCount@,+--     where this 'PresentIdKHR' is in the pNext-chain of the+--     'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' structure+--+-- -   #VUID-VkPresentIdKHR-presentIds-04999# Each @presentIds@ entry+--     /must/ be greater than any previous @presentIds@ entry passed for+--     the associated @pSwapchains@ entry+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkPresentIdKHR-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRESENT_ID_KHR'+--+-- -   #VUID-VkPresentIdKHR-pPresentIds-parameter# If @pPresentIds@ is not+--     @NULL@, @pPresentIds@ /must/ be a valid pointer to an array of+--     @swapchainCount@ @uint64_t@ values+--+-- -   #VUID-VkPresentIdKHR-swapchainCount-arraylength# @swapchainCount@+--     /must/ be greater than @0@+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PresentIdKHR = PresentIdKHR+  { -- | @swapchainCount@ is the number of swapchains being presented to the+    -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' command.+    swapchainCount :: Word32+  , -- | @pPresentIds@ is @NULL@ or a pointer to an array of uint64_t with+    -- @swapchainCount@ entries. If not @NULL@, each non-zero value in+    -- @pPresentIds@ specifies the present id to be associated with the+    -- presentation of the swapchain with the same index in the+    -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' call.+    presentIds :: Vector Word64+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PresentIdKHR)+#endif+deriving instance Show PresentIdKHR++instance ToCStruct PresentIdKHR where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PresentIdKHR{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRESENT_ID_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    let pPresentIdsLength = Data.Vector.length $ (presentIds)+    swapchainCount'' <- lift $ if (swapchainCount) == 0+      then pure $ fromIntegral pPresentIdsLength+      else do+        unless (fromIntegral pPresentIdsLength == (swapchainCount) || pPresentIdsLength == 0) $+          throwIO $ IOError Nothing InvalidArgument "" "pPresentIds must be empty or have 'swapchainCount' elements" Nothing Nothing+        pure (swapchainCount)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (swapchainCount'')+    pPresentIds'' <- if Data.Vector.null (presentIds)+      then pure nullPtr+      else do+        pPPresentIds <- ContT $ allocaBytes @Word64 (((Data.Vector.length (presentIds))) * 8)+        lift $ Data.Vector.imapM_ (\i e -> poke (pPPresentIds `plusPtr` (8 * (i)) :: Ptr Word64) (e)) ((presentIds))+        pure $ pPPresentIds+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Word64))) pPresentIds''+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRESENT_ID_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct PresentIdKHR where+  peekCStruct p = do+    swapchainCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pPresentIds <- peek @(Ptr Word64) ((p `plusPtr` 24 :: Ptr (Ptr Word64)))+    let pPresentIdsLength = if pPresentIds == nullPtr then 0 else (fromIntegral swapchainCount)+    pPresentIds' <- generateM pPresentIdsLength (\i -> peek @Word64 ((pPresentIds `advancePtrBytes` (8 * (i)) :: Ptr Word64)))+    pure $ PresentIdKHR+             swapchainCount pPresentIds'++instance Zero PresentIdKHR where+  zero = PresentIdKHR+           zero+           mempty+++type KHR_PRESENT_ID_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_PRESENT_ID_SPEC_VERSION"+pattern KHR_PRESENT_ID_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_PRESENT_ID_SPEC_VERSION = 1+++type KHR_PRESENT_ID_EXTENSION_NAME = "VK_KHR_present_id"++-- No documentation found for TopLevel "VK_KHR_PRESENT_ID_EXTENSION_NAME"+pattern KHR_PRESENT_ID_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_PRESENT_ID_EXTENSION_NAME = "VK_KHR_present_id"+
+ src/Vulkan/Extensions/VK_KHR_present_id.hs-boot view
@@ -0,0 +1,121 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_present_id - device extension+--+-- == VK_KHR_present_id+--+-- [__Name String__]+--     @VK_KHR_present_id@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     295+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_swapchain@+--+-- [__Contact__]+--+--     -   Keith Packard+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_present_id:%20&body=@keithp%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2019-05-15+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Keith Packard, Valve+--+--     -   Ian Elliott, Google+--+--     -   Alon Or-bach, Samsung+--+-- == Description+--+-- This device extension allows an application that uses the+-- @VK_KHR_swapchain@ extension to provide an identifier for present+-- operations on a swapchain. An application /can/ use this to reference+-- specific present operations in other extensions.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDevicePresentIdFeaturesKHR'+--+-- -   Extending 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR':+--+--     -   'PresentIdKHR'+--+-- == New Enum Constants+--+-- -   'KHR_PRESENT_ID_EXTENSION_NAME'+--+-- -   'KHR_PRESENT_ID_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRESENT_ID_KHR'+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- -   Revision 1, 2019-05-15 (Keith Packard)+--+--     -   Initial version+--+-- = See Also+--+-- 'PhysicalDevicePresentIdFeaturesKHR', 'PresentIdKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_present_id  ( PhysicalDevicePresentIdFeaturesKHR+                                            , PresentIdKHR+                                            ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDevicePresentIdFeaturesKHR++instance ToCStruct PhysicalDevicePresentIdFeaturesKHR+instance Show PhysicalDevicePresentIdFeaturesKHR++instance FromCStruct PhysicalDevicePresentIdFeaturesKHR+++data PresentIdKHR++instance ToCStruct PresentIdKHR+instance Show PresentIdKHR++instance FromCStruct PresentIdKHR+
+ src/Vulkan/Extensions/VK_KHR_present_wait.hs view
@@ -0,0 +1,428 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_present_wait - device extension+--+-- == VK_KHR_present_wait+--+-- [__Name String__]+--     @VK_KHR_present_wait@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     249+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_swapchain@+--+--     -   Requires @VK_KHR_present_id@+--+-- [__Contact__]+--+--     -   Keith Packard+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_present_wait:%20&body=@keithp%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2019-05-15+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Keith Packard, Valve+--+--     -   Ian Elliott, Google+--+--     -   Tobias Hector, AMD+--+--     -   Daniel Stone, Collabora+--+-- == Description+--+-- This device extension allows an application that uses the+-- @VK_KHR_swapchain@ extension to wait for present operations to complete.+-- An application can use this to monitor and control the pacing of the+-- application by managing the number of outstanding images yet to be+-- presented.+--+-- == New Commands+--+-- -   'waitForPresentKHR'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDevicePresentWaitFeaturesKHR'+--+-- == New Enum Constants+--+-- -   'KHR_PRESENT_WAIT_EXTENSION_NAME'+--+-- -   'KHR_PRESENT_WAIT_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR'+--+-- == Issues+--+-- 1) When does the wait finish?+--+-- __RESOLVED__. The wait will finish when the present is visible to the+-- user. There is no requirement for any precise timing relationship+-- between the presentation of the image to the user, but implementations+-- /should/ signal the wait as close as possible to the presentation of the+-- first pixel in the new image to the user.+--+-- 2) Should this use fences or other existing synchronization mechanism.+--+-- __RESOLVED__. Because display and rendering are often implemented in+-- separate drivers, this extension will provide a separate synchronization+-- API.+--+-- 3) Should this extension share present identification with other+-- extensions?+--+-- __RESOLVED__. Yes. A new extension, VK_KHR_present_id, should be created+-- to provide a shared structure for presentation identifiers.+--+-- 4) What happens when presentations complete out of order wrt calls to+-- vkQueuePresent? This could happen if the semaphores for the+-- presentations were ready out of order.+--+-- __OPTION A__: Require that when a PresentId is set that the driver+-- ensure that images are always presented in the order of calls to+-- vkQueuePresent.+--+-- __OPTION B__: Finish both waits when the earliest present completes.+-- This will complete the later present wait earlier than the actual+-- presentation. This should be the easiest to implement as the driver need+-- only track the largest present ID completed. This is also the+-- \'natural\' consequence of interpreting the existing vkWaitForPresentKHR+-- specificationn.+--+-- __OPTION C__: Finish both waits when both have completed. This will+-- complete the earlier presentation later than the actual presentation+-- time. This is allowed by the current specification as there is no+-- precise timing requirement for when the presentId value is updated. This+-- requires slightly more complexity in the driver as it will need to track+-- all outstanding presentId values.+--+-- == Version History+--+-- -   Revision 1, 2019-02-19 (Keith Packard)+--+--     -   Initial version+--+-- = See Also+--+-- 'PhysicalDevicePresentWaitFeaturesKHR', 'waitForPresentKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_present_wait  ( waitForPresentKHR+                                              , waitForPresentKHRSafe+                                              , PhysicalDevicePresentWaitFeaturesKHR(..)+                                              , KHR_PRESENT_WAIT_SPEC_VERSION+                                              , pattern KHR_PRESENT_WAIT_SPEC_VERSION+                                              , KHR_PRESENT_WAIT_EXTENSION_NAME+                                              , pattern KHR_PRESENT_WAIT_EXTENSION_NAME+                                              , SwapchainKHR(..)+                                              ) 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 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 (Word64)+import Data.Kind (Type)+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.Dynamic (DeviceCmds(pVkWaitForPresentKHR))+import Vulkan.Core10.Handles (Device_T)+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.Extensions.Handles (SwapchainKHR(..))+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (SwapchainKHR(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkWaitForPresentKHRUnsafe+  :: FunPtr (Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result++foreign import ccall+  "dynamic" mkVkWaitForPresentKHRSafe+  :: FunPtr (Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result++-- | waitForPresentKHR with selectable safeness+waitForPresentKHRSafeOrUnsafe :: forall io+                               . (MonadIO io)+                              => (FunPtr (Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result)+                              -> -- | @device@ is the device associated with @swapchain@.+                                 Device+                              -> -- | @swapchain@ is the non-retired swapchain on which an image was queued+                                 -- for presentation.+                                 SwapchainKHR+                              -> -- | @presentId@ is the presentation presentId to wait for.+                                 ("presentId" ::: Word64)+                              -> -- | @timeout@ is the timeout period in units of nanoseconds. @timeout@ is+                                 -- adjusted to the closest value allowed by the implementation-dependent+                                 -- timeout accuracy, which /may/ be substantially longer than one+                                 -- nanosecond, and /may/ be longer than the requested period.+                                 ("timeout" ::: Word64)+                              -> io (Result)+waitForPresentKHRSafeOrUnsafe mkVkWaitForPresentKHR device swapchain presentId timeout = liftIO $ do+  let vkWaitForPresentKHRPtr = pVkWaitForPresentKHR (deviceCmds (device :: Device))+  unless (vkWaitForPresentKHRPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkWaitForPresentKHR is null" Nothing Nothing+  let vkWaitForPresentKHR' = mkVkWaitForPresentKHR vkWaitForPresentKHRPtr+  r <- traceAroundEvent "vkWaitForPresentKHR" (vkWaitForPresentKHR' (deviceHandle (device)) (swapchain) (presentId) (timeout))+  when (r < SUCCESS) (throwIO (VulkanException r))+  pure $ (r)++-- | vkWaitForPresentKHR - Wait for presentation+--+-- = Description+--+-- 'waitForPresentKHR' waits for the presentId associated with @swapchain@+-- to be increased in value so that it is at least equal to @presentId@.+--+-- For 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' (or+-- other present mode where images may be replaced in the presentation+-- queue) any wait of this type associated with such an image /must/ be+-- signaled no later than a wait associated with the replacing image would+-- be signaled.+--+-- When the presentation has completed, the presentId associated with the+-- related @pSwapChains@ entry will be increased in value so that it is at+-- least equal to the value provided in the+-- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR' structure.+--+-- There is no requirement for any precise timing relationship between the+-- presentation of the image to the user and the update of the presentId+-- value, but implementations /should/ make this as close as possible to+-- the presentation of the first pixel in the new image to the user.+--+-- The call to 'waitForPresentKHR' will block until either the presentId+-- associated with @swapchain@ is greater than or equal to @presentId@, or+-- @timeout@ nanoseconds passes. When the swapchain becomes OUT_OF_DATE,+-- the call will either return 'Vulkan.Core10.Enums.Result.SUCCESS' (if the+-- image was delivered to the presentation engine and may have been+-- presented to the user) or will return early with status+-- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR' (if the image was not+-- presented to the user).+--+-- As an exception to the normal rules for objects which are externally+-- synchronized, the @swapchain@ passed to 'waitForPresentKHR' /may/ be+-- simultaneously used by other threads in calls to functions other than+-- 'Vulkan.Extensions.VK_KHR_swapchain.destroySwapchainKHR'. Access to the+-- swapchain data associated with this extension /must/ be atomic within+-- the implementation.+--+-- == Valid Usage+--+-- -   #VUID-vkWaitForPresentKHR-swapchain-04997# @swapchain@ /must/ not be+--     in the retired state+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkWaitForPresentKHR-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkWaitForPresentKHR-swapchain-parameter# @swapchain@ /must/ be+--     a valid 'Vulkan.Extensions.Handles.SwapchainKHR' handle+--+-- -   #VUID-vkWaitForPresentKHR-commonparent# Both of @device@, and+--     @swapchain@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Instance'+--+-- == Host Synchronization+--+-- -   Host access to @swapchain@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+--     -   'Vulkan.Core10.Enums.Result.TIMEOUT'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Extensions.Handles.SwapchainKHR'+waitForPresentKHR :: forall io+                   . (MonadIO io)+                  => -- | @device@ is the device associated with @swapchain@.+                     Device+                  -> -- | @swapchain@ is the non-retired swapchain on which an image was queued+                     -- for presentation.+                     SwapchainKHR+                  -> -- | @presentId@ is the presentation presentId to wait for.+                     ("presentId" ::: Word64)+                  -> -- | @timeout@ is the timeout period in units of nanoseconds. @timeout@ is+                     -- adjusted to the closest value allowed by the implementation-dependent+                     -- timeout accuracy, which /may/ be substantially longer than one+                     -- nanosecond, and /may/ be longer than the requested period.+                     ("timeout" ::: Word64)+                  -> io (Result)+waitForPresentKHR = waitForPresentKHRSafeOrUnsafe mkVkWaitForPresentKHRUnsafe++-- | A variant of 'waitForPresentKHR' which makes a *safe* FFI call+waitForPresentKHRSafe :: forall io+                       . (MonadIO io)+                      => -- | @device@ is the device associated with @swapchain@.+                         Device+                      -> -- | @swapchain@ is the non-retired swapchain on which an image was queued+                         -- for presentation.+                         SwapchainKHR+                      -> -- | @presentId@ is the presentation presentId to wait for.+                         ("presentId" ::: Word64)+                      -> -- | @timeout@ is the timeout period in units of nanoseconds. @timeout@ is+                         -- adjusted to the closest value allowed by the implementation-dependent+                         -- timeout accuracy, which /may/ be substantially longer than one+                         -- nanosecond, and /may/ be longer than the requested period.+                         ("timeout" ::: Word64)+                      -> io (Result)+waitForPresentKHRSafe = waitForPresentKHRSafeOrUnsafe mkVkWaitForPresentKHRSafe+++-- | VkPhysicalDevicePresentWaitFeaturesKHR - Structure indicating support+-- for present wait+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePresentWaitFeaturesKHR' 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. 'PhysicalDevicePresentWaitFeaturesKHR' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePresentWaitFeaturesKHR = PhysicalDevicePresentWaitFeaturesKHR+  { -- | #features-presentWait# @presentWait@ indicates that the implementation+    -- supports 'waitForPresentKHR'.+    presentWait :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePresentWaitFeaturesKHR)+#endif+deriving instance Show PhysicalDevicePresentWaitFeaturesKHR++instance ToCStruct PhysicalDevicePresentWaitFeaturesKHR where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDevicePresentWaitFeaturesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (presentWait))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDevicePresentWaitFeaturesKHR where+  peekCStruct p = do+    presentWait <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDevicePresentWaitFeaturesKHR+             (bool32ToBool presentWait)++instance Storable PhysicalDevicePresentWaitFeaturesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePresentWaitFeaturesKHR where+  zero = PhysicalDevicePresentWaitFeaturesKHR+           zero+++type KHR_PRESENT_WAIT_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_PRESENT_WAIT_SPEC_VERSION"+pattern KHR_PRESENT_WAIT_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_PRESENT_WAIT_SPEC_VERSION = 1+++type KHR_PRESENT_WAIT_EXTENSION_NAME = "VK_KHR_present_wait"++-- No documentation found for TopLevel "VK_KHR_PRESENT_WAIT_EXTENSION_NAME"+pattern KHR_PRESENT_WAIT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_PRESENT_WAIT_EXTENSION_NAME = "VK_KHR_present_wait"+
+ src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot view
@@ -0,0 +1,154 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_present_wait - device extension+--+-- == VK_KHR_present_wait+--+-- [__Name String__]+--     @VK_KHR_present_wait@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     249+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_swapchain@+--+--     -   Requires @VK_KHR_present_id@+--+-- [__Contact__]+--+--     -   Keith Packard+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_present_wait:%20&body=@keithp%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2019-05-15+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Keith Packard, Valve+--+--     -   Ian Elliott, Google+--+--     -   Tobias Hector, AMD+--+--     -   Daniel Stone, Collabora+--+-- == Description+--+-- This device extension allows an application that uses the+-- @VK_KHR_swapchain@ extension to wait for present operations to complete.+-- An application can use this to monitor and control the pacing of the+-- application by managing the number of outstanding images yet to be+-- presented.+--+-- == New Commands+--+-- -   'waitForPresentKHR'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDevicePresentWaitFeaturesKHR'+--+-- == New Enum Constants+--+-- -   'KHR_PRESENT_WAIT_EXTENSION_NAME'+--+-- -   'KHR_PRESENT_WAIT_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR'+--+-- == Issues+--+-- 1) When does the wait finish?+--+-- __RESOLVED__. The wait will finish when the present is visible to the+-- user. There is no requirement for any precise timing relationship+-- between the presentation of the image to the user, but implementations+-- /should/ signal the wait as close as possible to the presentation of the+-- first pixel in the new image to the user.+--+-- 2) Should this use fences or other existing synchronization mechanism.+--+-- __RESOLVED__. Because display and rendering are often implemented in+-- separate drivers, this extension will provide a separate synchronization+-- API.+--+-- 3) Should this extension share present identification with other+-- extensions?+--+-- __RESOLVED__. Yes. A new extension, VK_KHR_present_id, should be created+-- to provide a shared structure for presentation identifiers.+--+-- 4) What happens when presentations complete out of order wrt calls to+-- vkQueuePresent? This could happen if the semaphores for the+-- presentations were ready out of order.+--+-- __OPTION A__: Require that when a PresentId is set that the driver+-- ensure that images are always presented in the order of calls to+-- vkQueuePresent.+--+-- __OPTION B__: Finish both waits when the earliest present completes.+-- This will complete the later present wait earlier than the actual+-- presentation. This should be the easiest to implement as the driver need+-- only track the largest present ID completed. This is also the+-- \'natural\' consequence of interpreting the existing vkWaitForPresentKHR+-- specificationn.+--+-- __OPTION C__: Finish both waits when both have completed. This will+-- complete the earlier presentation later than the actual presentation+-- time. This is allowed by the current specification as there is no+-- precise timing requirement for when the presentId value is updated. This+-- requires slightly more complexity in the driver as it will need to track+-- all outstanding presentId values.+--+-- == Version History+--+-- -   Revision 1, 2019-02-19 (Keith Packard)+--+--     -   Initial version+--+-- = See Also+--+-- 'PhysicalDevicePresentWaitFeaturesKHR', 'waitForPresentKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_present_wait  (PhysicalDevicePresentWaitFeaturesKHR) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDevicePresentWaitFeaturesKHR++instance ToCStruct PhysicalDevicePresentWaitFeaturesKHR+instance Show PhysicalDevicePresentWaitFeaturesKHR++instance FromCStruct PhysicalDevicePresentWaitFeaturesKHR+
src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs view
@@ -88,7 +88,7 @@ -- == Description -- -- The use of Y′CBCR sampler conversion is an area in 3D graphics not used--- by most Vulkan developers. It’s mainly used for processing inputs from+-- by most Vulkan developers. It is mainly used for processing inputs from -- video decoders and cameras. The use of the extension assumes basic -- knowledge of Y′CBCR concepts. --
src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs view
@@ -121,7 +121,7 @@ -- -- 1) Is this the same functionality as @GL_ARB_shader_draw_parameters@? ----- __RESOLVED__: It’s actually a superset as it also adds in support for+-- __RESOLVED__: It is actually a superset, as it also adds in support for -- arrayed drawing commands. -- -- In GL for @GL_ARB_shader_draw_parameters@, @gl_BaseVertexARB@ holds the
src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs view
@@ -28,6 +28,8 @@ --     -   Jesse Hall --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_shader_terminate_invocation:%20&body=@critsec%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] --     2020-08-11 --
src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot view
@@ -28,6 +28,8 @@ --     -   Jesse Hall --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_shader_terminate_invocation:%20&body=@critsec%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] --     2020-08-11 --
src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs view
@@ -94,7 +94,7 @@ -- == Issues -- -- 1. Should we have an extension specific to this SPIR-V version, or add a--- version-generic query for SPIR-V version? SPIR-V 1.4 doesn’t need any+-- version-generic query for SPIR-V version? SPIR-V 1.4 does not need any -- other API changes. -- -- __RESOLVED__: Just expose SPIR-V 1.4.@@ -107,13 +107,13 @@ -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties' -- to allow querying the supported group operation categories, maximum -- supported subgroup size, etc. While we could expose the parts of a new--- SPIR-V version that don’t need accompanying changes generically, we’ll--- still end up writing extensions specific to each version for the--- remaining parts. Thus the generic mechanism won’t reduce future+-- SPIR-V version that do not need accompanying changes generically, we+-- will still end up writing extensions specific to each version for the+-- remaining parts. Thus the generic mechanism will not reduce future -- spec-writing effort. In addition, making it clear which parts of a--- future version are supported by the generic mechanism and which can’t be--- used without specific support would be difficult to get right ahead of--- time.+-- future version are supported by the generic mechanism and which cannot+-- be used without specific support would be difficult to get right ahead+-- of time. -- -- 2. Can different stages of the same pipeline use shaders with different -- SPIR-V versions?@@ -145,10 +145,10 @@ -- though the extension was promoted in SPIR-V 1.4, the capabilities are -- still optional in implementations that support @VK_KHR_spirv_1_4@. ----- A SPIR-V 1.4 module doesn’t need to enable @SPV_KHR_float_controls@ in+-- A SPIR-V 1.4 module does not need to enable @SPV_KHR_float_controls@ in -- order to use the capabilities, so if the application has /a priori/--- knowledge that the implementation supports the capabilities, it doesn’t--- need to enable @VK_KHR_shader_float_controls@. However, if it doesn’t+-- knowledge that the implementation supports the capabilities, it does not+-- need to enable @VK_KHR_shader_float_controls@. However, if it does not -- have this knowledge and has to query for support at runtime, it must -- enable @VK_KHR_shader_float_controls@ in order to use -- 'Vulkan.Extensions.VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsPropertiesKHR'.
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -678,7 +678,7 @@ -- -   Revision 13, 2015-06-01 (James Jones) -- --     -   Moved some structures to VK_EXT_KHR_swap_chain to resolve the---         spec’s issues 1 and 2.+--         specification’s issues 1 and 2. -- -- -   Revision 14, 2015-06-01 (James Jones) --@@ -1217,6 +1217,7 @@ import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_GGP_frame_token (PresentFrameTokenGGP)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PresentIdKHR) import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionsKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PresentTimesInfoGOOGLE)@@ -1870,6 +1871,9 @@ -- wait operation specified in 'PresentInfoKHR' will execute when the -- corresponding queue operation is complete. --+-- Calls to 'queuePresentKHR' /may/ block, but /must/ return in finite+-- time.+-- -- If any @swapchain@ member of @pPresentInfo@ was created with -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT', -- 'Vulkan.Core10.Enums.Result.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT'@@ -2840,6 +2844,7 @@ --     'DeviceGroupPresentInfoKHR', --     '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' --@@ -2917,6 +2922,7 @@   extends _ f     | Just Refl <- eqT @e @PresentFrameTokenGGP = Just f     | Just Refl <- eqT @e @PresentTimesInfoGOOGLE = Just f+    | Just Refl <- eqT @e @PresentIdKHR = Just f     | Just Refl <- eqT @e @DeviceGroupPresentInfoKHR = Just f     | Just Refl <- eqT @e @PresentRegionsKHR = Just f     | Just Refl <- eqT @e @DisplayPresentInfoKHR = Just f
src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot view
@@ -678,7 +678,7 @@ -- -   Revision 13, 2015-06-01 (James Jones) -- --     -   Moved some structures to VK_EXT_KHR_swap_chain to resolve the---         spec’s issues 1 and 2.+--         specification’s issues 1 and 2. -- -- -   Revision 14, 2015-06-01 (James Jones) --
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -468,6 +468,7 @@                                                                       , ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR                                                                       , ACCESS_2_SHADER_STORAGE_READ_BIT_KHR                                                                       , ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR+                                                                      , ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI                                                                       , ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT                                                                       , ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT                                                                       , ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR@@ -507,6 +508,7 @@                                                                              , PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR                                                                              , PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR                                                                              , PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR+                                                                             , PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI                                                                              , PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                                                                              , PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                                                                              , PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT@@ -885,6 +887,11 @@ --     feature is not enabled, @stageMask@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-vkCmdResetEvent2KHR-stageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-vkCmdResetEvent2KHR-synchronization2-03829# The --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2> --     feature /must/ be enabled@@ -1724,6 +1731,11 @@ --     feature is not enabled, @stage@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-vkCmdWriteTimestamp2KHR-stage-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @stage@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-vkCmdWriteTimestamp2KHR-synchronization2-03858# The --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2> --     feature /must/ be enabled@@ -1914,6 +1926,11 @@ --     feature is not enabled, @stage@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @stage@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893# The --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2> --     feature /must/ be enabled@@ -2176,6 +2193,11 @@ --     feature is not enabled, @srcStageMask@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-VkMemoryBarrier2KHR-srcStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03900# If @srcAccessMask@ --     includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', @srcStageMask@ --     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',@@ -2335,6 +2357,10 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-04994# If @srcAccessMask@+--     includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI', @srcStageMask@+--     /must/ include 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03924# If @srcAccessMask@ --     includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', @srcStageMask@ --     /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or@@ -2406,6 +2432,11 @@ --     feature is not enabled, @dstStageMask@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-VkMemoryBarrier2KHR-dstStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03900# If @dstAccessMask@ --     includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', @dstStageMask@ --     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',@@ -2565,6 +2596,10 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-04994# If @dstAccessMask@+--     includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI', @dstStageMask@+--     /must/ include 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03924# If @dstAccessMask@ --     includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', @dstStageMask@ --     /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or@@ -2686,7 +2721,7 @@ -- -- This structure defines a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>--- limited to an image subresource range, and optionally defines a+-- limited to an image subresource range, and /can/ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation> -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>@@ -2805,6 +2840,11 @@ --     feature is not enabled, @srcStageMask@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03900# If --     @srcAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', --     @srcStageMask@ /must/ include@@ -2978,6 +3018,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04994# If+--     @srcAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @srcStageMask@ /must/ include+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03924# If --     @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', --     @srcStageMask@ /must/ include@@ -3053,6 +3098,11 @@ --     feature is not enabled, @dstStageMask@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03900# If --     @dstAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', --     @dstStageMask@ /must/ include@@ -3226,6 +3276,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04994# If+--     @dstAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @dstStageMask@ /must/ include+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03924# If --     @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', --     @dstStageMask@ /must/ include@@ -3717,7 +3772,7 @@ -- -- This structure defines a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>--- limited to a range of a buffer, and optionally defines a+-- limited to a range of a buffer, and /can/ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation> -- for that range. --@@ -3811,6 +3866,11 @@ --     feature is not enabled, @srcStageMask@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03900# If --     @srcAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', --     @srcStageMask@ /must/ include@@ -3984,6 +4044,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04994# If+--     @srcAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @srcStageMask@ /must/ include+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03924# If --     @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', --     @srcStageMask@ /must/ include@@ -4059,6 +4124,11 @@ --     feature is not enabled, @dstStageMask@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03900# If --     @dstAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', --     @dstStageMask@ /must/ include@@ -4232,6 +4302,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04994# If+--     @dstAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @dstStageMask@ /must/ include+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03924# If --     @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', --     @dstStageMask@ /must/ include@@ -4615,6 +4690,11 @@ --     feature is not enabled, @stageMask@ /must/ not contain --     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- -   #VUID-VkSemaphoreSubmitInfoKHR-device-03888# If the @device@ that --     @semaphore@ was created on is not a device group, @deviceIndex@ --     /must/ be @0@@@ -5319,6 +5399,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage. pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR           = AccessFlagBits2KHR 0x0000000400000000+-- | 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' specifies read access to a+-- invocation mask image in the+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' pipeline stage.+pattern ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI        = AccessFlagBits2KHR 0x0000008000000000 -- | 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read -- access to -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachments>,@@ -5415,6 +5499,7 @@   , (ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR           , "SHADER_SAMPLED_READ_BIT_KHR")   , (ACCESS_2_SHADER_STORAGE_READ_BIT_KHR           , "SHADER_STORAGE_READ_BIT_KHR")   , (ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR          , "SHADER_STORAGE_WRITE_BIT_KHR")+  , (ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI       , "INVOCATION_MASK_READ_BIT_HUAWEI")   , (ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, "COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT")   , (ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT     , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT")   , (ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR  , "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")@@ -5577,6 +5662,8 @@ -- -   'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- -   'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR                   = PipelineStageFlagBits2KHR 0x0000000000008000 -- | 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' specifies all operations -- performed by all commands supported on the queue it is used with.@@ -5618,6 +5705,10 @@ -- -- -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR      = PipelineStageFlagBits2KHR 0x0000004000000000+-- | 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' specifies the stage of the+-- pipeline where the invocation mask image is read by the implementation+-- to optimize the ray dispatch.+pattern PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI             = PipelineStageFlagBits2KHR 0x0000010000000000 -- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' specifies the mesh shader stage. pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                     = PipelineStageFlagBits2KHR 0x0000000000100000 -- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' specifies the task shader stage.@@ -5687,6 +5778,7 @@   , (PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR                   , "INDEX_INPUT_BIT_KHR")   , (PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR        , "VERTEX_ATTRIBUTE_INPUT_BIT_KHR")   , (PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR     , "PRE_RASTERIZATION_SHADERS_BIT_KHR")+  , (PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI            , "INVOCATION_MASK_BIT_HUAWEI")   , (PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                    , "MESH_SHADER_BIT_NV")   , (PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                    , "TASK_SHADER_BIT_NV")   , (PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT      , "FRAGMENT_DENSITY_PROCESS_BIT_EXT")
src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs view
@@ -220,7 +220,7 @@ -- presentation and swapchain image acquisition operations? -- -- __RESOLVED__: Some implementations may have problems with supporting--- that directly, thus it’s not allowed in this extension.+-- that directly, thus it is not allowed in this extension. -- -- 8) Do we want to support external sharing of the new synchronization -- primitive type?
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs view
@@ -65,7 +65,7 @@ -- shader can bulk copy data from another storage class using one type -- (e.g. an array of large vectors), and then use the data with a more -- specific type. It also enables reducing the amount of workgroup memory--- consumed by allowing the shader to alias data whose lifetimes don’t+-- consumed by allowing the shader to alias data whose lifetimes do not -- overlap. -- -- The explicit layout support and some form of aliasing is also required
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot view
@@ -65,7 +65,7 @@ -- shader can bulk copy data from another storage class using one type -- (e.g. an array of large vectors), and then use the data with a more -- specific type. It also enables reducing the amount of workgroup memory--- consumed by allowing the shader to alias data whose lifetimes don’t+-- consumed by allowing the shader to alias data whose lifetimes do not -- overlap. -- -- The explicit layout support and some form of aliasing is also required
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs view
@@ -368,8 +368,9 @@ -- -- = Description ----- If this structure is not present, or if the extension is not enabled,--- the default coverage reduction mode is inferred as follows:+-- If this structure is not included in the @pNext@ chain, or if the+-- extension is not enabled, the default coverage reduction mode is+-- inferred as follows: -- -- -   If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, then --     it is as if the @coverageReductionMode@ is
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -1851,7 +1851,7 @@   , -- No documentation found for Nested "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV" "minSequencesIndexBufferOffsetAlignment"     minSequencesIndexBufferOffsetAlignment :: Word32   , -- | @minIndirectCommandsBufferOffsetAlignment@ is the minimum alignment for-    -- memory addresses used in 'IndirectCommandsStreamNV' and as preprocess+    -- memory addresses used in 'IndirectCommandsStreamNV', and as preprocess     -- buffer in 'GeneratedCommandsInfoNV'.     minIndirectCommandsBufferOffsetAlignment :: Word32   }
src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs view
@@ -215,7 +215,6 @@ import Control.Monad.Trans.Cont (ContT(..)) 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(..))@@ -268,19 +267,23 @@                             -- #VUID-vkGetMemoryRemoteAddressNV-device-parameter# @device@ /must/ be a                             -- valid 'Vulkan.Core10.Handles.Device' handle                             Device-                         -> -- | #VUID-vkGetMemoryRemoteAddressNV-getMemoryRemoteAddressInfo-parameter#-                            -- @getMemoryRemoteAddressInfo@ /must/ be a valid pointer to a valid+                         -> -- | @pMemoryGetRemoteAddressInfo@ is a pointer to a+                            -- 'MemoryGetRemoteAddressInfoNV' structure containing parameters of the+                            -- export operation.+                            --+                            -- #VUID-vkGetMemoryRemoteAddressNV-pMemoryGetRemoteAddressInfo-parameter#+                            -- @pMemoryGetRemoteAddressInfo@ /must/ be a valid pointer to a valid                             -- 'MemoryGetRemoteAddressInfoNV' structure-                            ("getMemoryRemoteAddressInfo" ::: MemoryGetRemoteAddressInfoNV)+                            MemoryGetRemoteAddressInfoNV                          -> io (RemoteAddressNV)-getMemoryRemoteAddressNV device getMemoryRemoteAddressInfo = liftIO . evalContT $ do+getMemoryRemoteAddressNV device memoryGetRemoteAddressInfo = liftIO . evalContT $ do   let vkGetMemoryRemoteAddressNVPtr = pVkGetMemoryRemoteAddressNV (deviceCmds (device :: Device))   lift $ unless (vkGetMemoryRemoteAddressNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryRemoteAddressNV is null" Nothing Nothing   let vkGetMemoryRemoteAddressNV' = mkVkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNVPtr-  getMemoryRemoteAddressInfo' <- ContT $ withCStruct (getMemoryRemoteAddressInfo)+  pMemoryGetRemoteAddressInfo <- ContT $ withCStruct (memoryGetRemoteAddressInfo)   pPAddress <- ContT $ bracket (callocBytes @RemoteAddressNV 8) free-  r <- lift $ traceAroundEvent "vkGetMemoryRemoteAddressNV" (vkGetMemoryRemoteAddressNV' (deviceHandle (device)) getMemoryRemoteAddressInfo' (pPAddress))+  r <- lift $ traceAroundEvent "vkGetMemoryRemoteAddressNV" (vkGetMemoryRemoteAddressNV' (deviceHandle (device)) pMemoryGetRemoteAddressInfo (pPAddress))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pAddress <- lift $ peek @RemoteAddressNV pPAddress   pure $ (pAddress)
src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs view
@@ -153,8 +153,9 @@ -- the sample coverage mask are filled with zeros. -- -- If @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE',--- these operations are skipped. If this structure is not present, it is as--- if @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE'.+-- these operations are skipped. If this structure is not included in the+-- @pNext@ chain, it is as if @coverageToColorEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.FALSE'. -- -- == Valid Usage --
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs view
@@ -159,7 +159,7 @@ -- -- __RESOLVED__: The SPIR-V extension for this feature chose to mirror the -- behavior of the GLSL extension, which provides two built-in variables.--- Additionally, it’s not clear that its a good idea (or even legal) to+-- Additionally, it is not clear that its a good idea (or even legal) to -- have two variables using the “same attribute”, but with different -- interpolation modifiers. --
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot view
@@ -159,7 +159,7 @@ -- -- __RESOLVED__: The SPIR-V extension for this feature chose to mirror the -- behavior of the GLSL extension, which provides two built-in variables.--- Additionally, it’s not clear that its a good idea (or even legal) to+-- Additionally, it is not clear that its a good idea (or even legal) to -- have two variables using the “same attribute”, but with different -- interpolation modifiers. --
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs view
@@ -135,14 +135,14 @@ --     VK_NV_shading_rate_image, there are three different ways to specify --     shading rate state in a pipeline. How should we handle this? -----     __RESOLVED__: We don’t allow the concurrent use of+--     __RESOLVED__: We do not allow the concurrent use of --     VK_NV_shading_rate_image and VK_KHR_fragment_shading_rate; it is an --     error to enable shading rate features from both extensions. But we --     do allow applications to enable this extension together with --     VK_KHR_fragment_shading_rate together. While we expect that --     applications will never attach pipeline CreateInfo structures for---     both this extension and the KHR extension concurrently, Vulkan---     doesn’t have any precedent forbidding such behavior and instead+--     both this extension and the KHR extension concurrently, Vulkan does+--     not have any precedent forbidding such behavior and instead --     typically treats a pipeline created without an extension-specific --     CreateInfo structure as equivalent to one containing default values --     specified by the extension. Rather than adding such a rule
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot view
@@ -135,14 +135,14 @@ --     VK_NV_shading_rate_image, there are three different ways to specify --     shading rate state in a pipeline. How should we handle this? -----     __RESOLVED__: We don’t allow the concurrent use of+--     __RESOLVED__: We do not allow the concurrent use of --     VK_NV_shading_rate_image and VK_KHR_fragment_shading_rate; it is an --     error to enable shading rate features from both extensions. But we --     do allow applications to enable this extension together with --     VK_KHR_fragment_shading_rate together. While we expect that --     applications will never attach pipeline CreateInfo structures for---     both this extension and the KHR extension concurrently, Vulkan---     doesn’t have any precedent forbidding such behavior and instead+--     both this extension and the KHR extension concurrently, Vulkan does+--     not have any precedent forbidding such behavior and instead --     typically treats a pipeline created without an extension-specific --     CreateInfo structure as equivalent to one containing default values --     specified by the extension. Rather than adding such a rule
src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs view
@@ -224,8 +224,8 @@ -- value of R. Which components are modulated is controlled by -- @coverageModulationMode@. ----- If this structure is not present, it is as if @coverageModulationMode@--- is 'COVERAGE_MODULATION_MODE_NONE_NV'.+-- If this structure is not included in the @pNext@ chain, it is as if+-- @coverageModulationMode@ is 'COVERAGE_MODULATION_MODE_NONE_NV'. -- -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-coverage-reduction coverage reduction mode>
src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs view
@@ -183,7 +183,7 @@ -- > -- > void main() -- > {--- >     // The shader simply computes and writes gl_Layer.  We don't+-- >     // The shader simply computes and writes gl_Layer.  We do not -- >     // loop over three vertices or call EmitVertex(). -- >     gl_Layer = compute_layer(); -- > }
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs view
@@ -113,7 +113,7 @@ -- -- This design also better matches the hardware model. In fact, there is no -- need to re-execute a depth-setting command. The graphics device retains--- the viewport depth state; it’s the CPU-side state of+-- the viewport depth state; it is the CPU-side state of -- 'Vulkan.Core10.Handles.CommandBuffer' that must be re-initialized. -- -- (2) Why are viewport depth values specified as a partial
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot view
@@ -113,7 +113,7 @@ -- -- This design also better matches the hardware model. In fact, there is no -- need to re-execute a depth-setting command. The graphics device retains--- the viewport depth state; it’s the CPU-side state of+-- the viewport depth state; it is the CPU-side state of -- 'Vulkan.Core10.Handles.CommandBuffer' that must be re-initialized. -- -- (2) Why are viewport depth values specified as a partial
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -229,9 +229,9 @@ --     __RESOLVED__: No. If an application were to be recompiled with --     headers that include additional shader stage bits in --     VK_SHADER_STAGE_ALL_GRAPHICS, then the previously valid application---     would no longer be valid on implementations that don’t support mesh+--     would no longer be valid on implementations that do not support mesh --     or task shaders. This means the change would not be backwards---     compatible. It’s too bad VkShaderStageFlagBits doesn’t have a+--     compatible. It is too bad VkShaderStageFlagBits does not have a --     dedicated “all supported graphics stages” bit like --     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, which would have avoided this --     problem.
src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot view
@@ -229,9 +229,9 @@ --     __RESOLVED__: No. If an application were to be recompiled with --     headers that include additional shader stage bits in --     VK_SHADER_STAGE_ALL_GRAPHICS, then the previously valid application---     would no longer be valid on implementations that don’t support mesh+--     would no longer be valid on implementations that do not support mesh --     or task shaders. This means the change would not be backwards---     compatible. It’s too bad VkShaderStageFlagBits doesn’t have a+--     compatible. It is too bad VkShaderStageFlagBits does not have a --     dedicated “all supported graphics stages” bit like --     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, which would have avoided this --     problem.
src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs view
@@ -362,8 +362,10 @@ -- -- = Description ----- If 'AccelerationStructureGeometryMotionTrianglesDataNV' is present in a--- geometry, the basic vertex positions are used for the position of the+-- If 'AccelerationStructureGeometryMotionTrianglesDataNV' is included in+-- the @pNext@ chain of a+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'+-- structure, the basic vertex positions are used for the position of the -- triangles in the geometry at time 0.0 and the @vertexData@ in -- 'AccelerationStructureGeometryMotionTrianglesDataNV' is used for the -- vertex positions at time 1.0, with positions linearly interpolated at@@ -651,8 +653,8 @@ -- -- = Description ----- The C language spec does not define the ordering of bit-fields, but in--- practice, this struct produces the correct layout with existing+-- The C language specification does not define the ordering of bit-fields,+-- but in practice, this struct produces the correct layout with existing -- compilers. The intended bit pattern is for the following: -- -- If a compiler produces code that diverges from that pattern,@@ -788,8 +790,8 @@ -- -- = Description ----- The C language spec does not define the ordering of bit-fields, but in--- practice, this struct produces the correct layout with existing+-- The C language specification does not define the ordering of bit-fields,+-- but in practice, this struct produces the correct layout with existing -- compilers. The intended bit pattern is for the following: -- -- If a compiler produces code that diverges from that pattern,
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs view
@@ -103,7 +103,7 @@ -- -- __RESOLVED__: No. As specified, we only guarantee that each primitive -- with at least one fragment that passes prior tests will have one--- fragment passing the representative fragment tests. We don’t guarantee+-- fragment passing the representative fragment tests. We do not guarantee -- that any particular fragment will fail the test. -- -- In the initial implementation of this extension, the representative@@ -126,7 +126,7 @@ -- __RESOLVED__: If writes to the color or depth buffer are enabled, they -- will be performed for any fragments that survive the relevant tests. Any -- fragments that fail the representative fragment test will not update--- color buffers. For the use cases intended for this feature, we don’t+-- color buffers. For the use cases intended for this feature, we do not -- expect color or depth writes to be enabled. -- -- (4) How do derivatives and automatic texture level of detail@@ -135,7 +135,7 @@ -- __RESOLVED__: If a fragment shader uses derivative functions or texture -- lookups using automatic level of detail computation, derivatives will be -- computed identically whether or not the representative fragment test is--- enabled. For the use cases intended for this feature, we don’t expect+-- enabled. For the use cases intended for this feature, we do not expect -- the use of derivatives in the fragment shader. -- -- == Version History@@ -267,9 +267,10 @@ -- -- = Description ----- If this structure is not present, @representativeFragmentTestEnable@ is--- considered to be 'Vulkan.Core10.FundamentalTypes.FALSE', and the--- representative fragment test is disabled.+-- If this structure is not included in the @pNext@ chain,+-- @representativeFragmentTestEnable@ is considered to be+-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the representative fragment+-- test is disabled. -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests>
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot view
@@ -103,7 +103,7 @@ -- -- __RESOLVED__: No. As specified, we only guarantee that each primitive -- with at least one fragment that passes prior tests will have one--- fragment passing the representative fragment tests. We don’t guarantee+-- fragment passing the representative fragment tests. We do not guarantee -- that any particular fragment will fail the test. -- -- In the initial implementation of this extension, the representative@@ -126,7 +126,7 @@ -- __RESOLVED__: If writes to the color or depth buffer are enabled, they -- will be performed for any fragments that survive the relevant tests. Any -- fragments that fail the representative fragment test will not update--- color buffers. For the use cases intended for this feature, we don’t+-- color buffers. For the use cases intended for this feature, we do not -- expect color or depth writes to be enabled. -- -- (4) How do derivatives and automatic texture level of detail@@ -135,7 +135,7 @@ -- __RESOLVED__: If a fragment shader uses derivative functions or texture -- lookups using automatic level of detail computation, derivatives will be -- computed identically whether or not the representative fragment test is--- enabled. For the use cases intended for this feature, we don’t expect+-- enabled. For the use cases intended for this feature, we do not expect -- the use of derivatives in the fragment shader. -- -- == Version History
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -240,7 +240,7 @@ -- that this same problem also exists for multisampling with single-pixel -- fragments, but is less severe because it only affects certain samples of -- a pixel and such bright\/dark samples may be averaged with other samples--- that don’t have a similar problem.+-- that do not have a similar problem. -- -- == Version History --
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot view
@@ -240,7 +240,7 @@ -- that this same problem also exists for multisampling with single-pixel -- fragments, but is less severe because it only affects certain samples of -- a pixel and such bright\/dark samples may be averaged with other samples--- that don’t have a similar problem.+-- that do not have a similar problem. -- -- == Version History --
src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs view
@@ -97,7 +97,7 @@ -- The viewport mask expansion (@VK_NV_viewport_array2@) and the viewport -- swizzle could potentially be performed before or after transform -- feedback, but feeding back several viewports worth of primitives with--- different swizzles doesn’t seem particularly useful. This specification+-- different swizzles does not seem particularly useful. This specification -- applies the viewport mask and swizzle after transform feedback, and -- makes primitive queries only count each primitive once. --@@ -141,7 +141,7 @@ -- >         positions[i] = rotate(gl_in[i].gl_Position, face); -- >     } -- >--- >     // If the primitive doesn't project onto this face, we're done.+-- >     // If the primitive does not project onto this face, we are done. -- >     if (shouldCull(positions)) { -- >         return; -- >     }@@ -224,7 +224,7 @@ -- -- 2.  On NVIDIA implementations supporting floating-point depth buffers --     with values outside [0,1], prevent unwanted near plane clipping by---     enabling @depthClampEnable@. Ensure that the depth clamp doesn’t+--     enabling @depthClampEnable@. Ensure that the depth clamp does not --     mess up depth testing by programming the depth range to very large --     values, such as @minDepthBounds@=-z, @maxDepthBounds@=+z, where z = --     2127. It should be possible to use IEEE infinity encodings also
src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot view
@@ -97,7 +97,7 @@ -- The viewport mask expansion (@VK_NV_viewport_array2@) and the viewport -- swizzle could potentially be performed before or after transform -- feedback, but feeding back several viewports worth of primitives with--- different swizzles doesn’t seem particularly useful. This specification+-- different swizzles does not seem particularly useful. This specification -- applies the viewport mask and swizzle after transform feedback, and -- makes primitive queries only count each primitive once. --@@ -141,7 +141,7 @@ -- >         positions[i] = rotate(gl_in[i].gl_Position, face); -- >     } -- >--- >     // If the primitive doesn't project onto this face, we're done.+-- >     // If the primitive does not project onto this face, we are done. -- >     if (shouldCull(positions)) { -- >         return; -- >     }@@ -224,7 +224,7 @@ -- -- 2.  On NVIDIA implementations supporting floating-point depth buffers --     with values outside [0,1], prevent unwanted near plane clipping by---     enabling @depthClampEnable@. Ensure that the depth clamp doesn’t+--     enabling @depthClampEnable@. Ensure that the depth clamp does not --     mess up depth testing by programming the depth range to very large --     values, such as @minDepthBounds@=-z, @maxDepthBounds@=+z, where z = --     2127. It should be possible to use IEEE infinity encodings also
src/Vulkan/SPIRVRequirements.hs view
@@ -40,6 +40,8 @@ import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV(..)) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR(..))+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT)+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT(..)) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)@@ -84,6 +86,7 @@ import Vulkan.Extensions.VK_EXT_fragment_density_map (pattern EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (pattern EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_post_depth_coverage (pattern EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME)@@ -647,6 +650,36 @@                              , deviceExtensionMinVersion = 0                              }     ]+  "SPV_EXT_shader_atomic_float_min_max" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]+  "SPV_EXT_shader_atomic_float16_add" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]   _ -> ([], [])  spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -714,6 +747,26 @@                              , deviceExtensionMinVersion = 0                              }     ]+  "AtomicFloat16AddEXT" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceFeature+      { featureName   = "shaderBufferFloat16AtomicAdd"+      , checkFeature  = shaderBufferFloat16AtomicAdd :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool+      , enableFeature = \f -> f { shaderBufferFloat16AtomicAdd = True } :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT+      }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]   "AtomicFloat32AddEXT" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -741,6 +794,69 @@       , checkFeature  = shaderBufferFloat64AtomicAdd :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool       , enableFeature = \f -> f { shaderBufferFloat64AtomicAdd = True } :: PhysicalDeviceShaderAtomicFloatFeaturesEXT       }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]+  "AtomicFloat16MinMaxEXT" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceFeature+      { featureName   = "shaderBufferFloat16AtomicMinMax"+      , checkFeature  = shaderBufferFloat16AtomicMinMax :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool+      , enableFeature = \f ->+                          f { shaderBufferFloat16AtomicMinMax = True } :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT+      }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]+  "AtomicFloat32MinMaxEXT" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceFeature+      { featureName   = "shaderBufferFloat32AtomicMinMax"+      , checkFeature  = shaderBufferFloat32AtomicMinMax :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool+      , enableFeature = \f ->+                          f { shaderBufferFloat32AtomicMinMax = True } :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT+      }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]+  "AtomicFloat64MinMaxEXT" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceFeature+      { featureName   = "shaderBufferFloat64AtomicMinMax"+      , checkFeature  = shaderBufferFloat64AtomicMinMax :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool+      , enableFeature = \f ->+                          f { shaderBufferFloat64AtomicMinMax = True } :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT+      }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME                              , deviceExtensionMinVersion = 0
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 184+pattern HEADER_VERSION = 185   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 184+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 185   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.11.2+version:        3.11.3 synopsis:       Bindings to the Vulkan graphics API. description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category:       Graphics@@ -336,6 +336,7 @@       Vulkan.Extensions.VK_EXT_scalar_block_layout       Vulkan.Extensions.VK_EXT_separate_stencil_usage       Vulkan.Extensions.VK_EXT_shader_atomic_float+      Vulkan.Extensions.VK_EXT_shader_atomic_float2       Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation       Vulkan.Extensions.VK_EXT_shader_image_atomic_int64       Vulkan.Extensions.VK_EXT_shader_stencil_export@@ -364,6 +365,7 @@       Vulkan.Extensions.VK_GOOGLE_display_timing       Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1       Vulkan.Extensions.VK_GOOGLE_user_type+      Vulkan.Extensions.VK_HUAWEI_invocation_mask       Vulkan.Extensions.VK_IMG_filter_cubic       Vulkan.Extensions.VK_IMG_format_pvrtc       Vulkan.Extensions.VK_INTEL_performance_query@@ -414,6 +416,8 @@       Vulkan.Extensions.VK_KHR_pipeline_executable_properties       Vulkan.Extensions.VK_KHR_pipeline_library       Vulkan.Extensions.VK_KHR_portability_subset+      Vulkan.Extensions.VK_KHR_present_id+      Vulkan.Extensions.VK_KHR_present_wait       Vulkan.Extensions.VK_KHR_push_descriptor       Vulkan.Extensions.VK_KHR_ray_query       Vulkan.Extensions.VK_KHR_ray_tracing_pipeline