packages feed

vulkan 3.10 → 3.10.1

raw patch · 55 files changed

+2793/−500 lines, 55 files

Files

changelog.md view
@@ -2,6 +2,10 @@  ## WIP +## [3.10.1] - 2021-03-31+- Bump API version to v1.2.174+- Fix https://github.com/expipiplus1/vulkan/issues/266+ ## [3.10] - 2021-02-18 - Bump API version to v1.2.170 
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.10"+version: "3.10.1" synopsis: Bindings to the Vulkan graphics API. category: Graphics maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>
src/Vulkan/CStruct/Extends.hs view
@@ -283,8 +283,10 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (ImportMemoryHostPointerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ImportMemoryWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ImportMemoryWin32HandleInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (ImportMemoryZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (ImportSemaphoreFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ImportSemaphoreWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (ImportSemaphoreZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutTokenNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsStreamNV)@@ -304,6 +306,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (MemoryGetAndroidHardwareBufferInfoANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryGetFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryGetWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryHeap) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (MemoryHostPointerPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (MemoryOpaqueCaptureAddressAllocateInfo)@@ -312,6 +315,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryType) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryZirconHandlePropertiesFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_surface (MetalSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (MultisamplePropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (MutableDescriptorTypeCreateInfoVALVE)@@ -560,9 +564,11 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionImageFormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (ScreenSurfaceCreateInfoQNX) import {-# SOURCE #-} Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (SemaphoreGetFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (SemaphoreGetWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (SemaphoreGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreSignalInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SemaphoreSubmitInfoKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreTypeCreateInfo)@@ -902,6 +908,7 @@   Extends MemoryAllocateInfo ExportMemoryAllocateInfo = ()   Extends MemoryAllocateInfo ImportMemoryWin32HandleInfoKHR = ()   Extends MemoryAllocateInfo ExportMemoryWin32HandleInfoKHR = ()+  Extends MemoryAllocateInfo ImportMemoryZirconHandleInfoFUCHSIA = ()   Extends MemoryAllocateInfo ImportMemoryFdInfoKHR = ()   Extends MemoryAllocateInfo MemoryAllocateFlagsInfo = ()   Extends MemoryAllocateInfo MemoryDedicatedAllocateInfo = ()@@ -1249,6 +1256,7 @@   STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO -> go @ExportMemoryAllocateInfo   STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR -> go @ImportMemoryWin32HandleInfoKHR   STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR -> go @ExportMemoryWin32HandleInfoKHR+  STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA -> go @ImportMemoryZirconHandleInfoFUCHSIA   STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR -> go @ImportMemoryFdInfoKHR   STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR -> go @Win32KeyedMutexAcquireReleaseInfoKHR   STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO -> go @ExportSemaphoreCreateInfo@@ -1571,6 +1579,7 @@ {-# complete (::&) :: ExportMemoryAllocateInfo #-} {-# complete (::&) :: ImportMemoryWin32HandleInfoKHR #-} {-# complete (::&) :: ExportMemoryWin32HandleInfoKHR #-}+{-# complete (::&) :: ImportMemoryZirconHandleInfoFUCHSIA #-} {-# complete (::&) :: ImportMemoryFdInfoKHR #-} {-# complete (::&) :: Win32KeyedMutexAcquireReleaseInfoKHR #-} {-# complete (::&) :: ExportSemaphoreCreateInfo #-}
src/Vulkan/Core10/AllocationCallbacks.hs view
@@ -93,6 +93,7 @@ -- 'Vulkan.Core10.Sampler.createSampler', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.createSamplerYcbcrConversion', -- 'Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion.createSamplerYcbcrConversionKHR',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.createScreenSurfaceQNX', -- 'Vulkan.Core10.QueueSemaphore.createSemaphore', -- 'Vulkan.Core10.Shader.createShaderModule', -- 'Vulkan.Extensions.VK_KHR_display_swapchain.createSharedSwapchainsKHR',
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -689,12 +689,12 @@ -- bias is applied and the fragment’s depth values are unchanged. -- -- @depthBiasSlopeFactor@ scales the maximum depth slope of the polygon,--- and @depthBiasConstantFactor@ scales an implementation-dependent--- constant that relates to the usable resolution of the depth buffer. The--- resulting values are summed to produce the depth bias value which is--- then clamped to a minimum or maximum value specified by--- @depthBiasClamp@. @depthBiasSlopeFactor@, @depthBiasConstantFactor@, and--- @depthBiasClamp@ /can/ each be positive, negative, or zero.+-- and @depthBiasConstantFactor@ scales the minimum resolvable difference+-- of the depth buffer. The resulting values are summed to produce the+-- depth bias value which is then clamped to a minimum or maximum value+-- specified by @depthBiasClamp@. @depthBiasSlopeFactor@,+-- @depthBiasConstantFactor@, and @depthBiasClamp@ /can/ each be positive,+-- negative, or zero. -- -- The maximum depth slope m of a triangle is --@@ -708,20 +708,25 @@ --                \left| { {\partial z_f} \over {\partial y_f} } \right| --        \right).\] ----- The minimum resolvable difference r is an implementation-dependent--- parameter that depends on the depth buffer representation. It is the--- smallest difference in framebuffer coordinate z values that is--- guaranteed to remain distinct throughout polygon rasterization and in--- the depth buffer. All pairs of fragments generated by the rasterization--- of two polygons with otherwise identical vertices, but @z@f values that--- differ by r, will have distinct depth values.+-- The minimum resolvable difference r is a parameter that depends on the+-- depth buffer representation. It is the smallest difference in+-- framebuffer coordinate z values that is guaranteed to remain distinct+-- throughout polygon rasterization and in the depth buffer. All pairs of+-- fragments generated by the rasterization of two polygons with otherwise+-- identical vertices, but @z@f values that differ by r, will have distinct+-- depth values. -- -- For fixed-point depth buffer representations, r is constant throughout--- the range of the entire depth buffer. For floating-point depth buffers,--- there is no single minimum resolvable difference. In this case, the--- minimum resolvable difference for a given polygon is dependent on the--- maximum exponent, e, in the range of z values spanned by the primitive.--- If n is the number of bits in the floating-point mantissa, the minimum+-- the range of the entire depth buffer. Its value is implementation+-- dependent but /must/ be at most+--+-- -   r = 2 × 2-n+--+-- for an n-bit buffer. For floating-point depth buffers, there is no+-- single minimum resolvable difference. In this case, the minimum+-- resolvable difference for a given polygon is dependent on the maximum+-- exponent, e, in the range of z values spanned by the primitive. If n is+-- the number of bits in the floating-point mantissa, the minimum -- resolvable difference, r, for the given primitive is defined as -- -- -   r = 2e-n@@ -1714,6 +1719,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDraw-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDraw-None-02691# If a 'Vulkan.Core10.Handles.ImageView' --     is accessed using atomic operations as a result of this command, --     then the image view’s@@ -1860,7 +1875,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDraw-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -2101,6 +2116,13 @@ --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --+-- -   #VUID-vkCmdDraw-rasterizationSamples-04740# If rasterization is not+--     disabled in the bound graphics pipeline, and neither the @@ nor the+--     @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a --     protected command buffer, any resource written to by the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind@@ -2241,6 +2263,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDrawIndexed-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDrawIndexed-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -2390,7 +2422,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDrawIndexed-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -2634,6 +2666,13 @@ --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --+-- -   #VUID-vkCmdDrawIndexed-rasterizationSamples-04740# If rasterization+--     is not disabled in the bound graphics pipeline, and neither the @@+--     nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a --     protected command buffer, any resource written to by the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind@@ -2768,6 +2807,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDrawIndirect-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDrawIndirect-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -2917,7 +2966,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDrawIndirect-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -3161,6 +3210,13 @@ --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --+-- -   #VUID-vkCmdDrawIndirect-rasterizationSamples-04740# If rasterization+--     is not disabled in the bound graphics pipeline, and neither the @@+--     nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings --     accessed via vertex input variables declared in the vertex shader --     entry point’s interface /must/ have either valid or@@ -3321,6 +3377,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDrawIndexedIndirect-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -3472,7 +3538,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -3716,6 +3782,13 @@ --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     neither the @@ nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings --     accessed via vertex input variables declared in the vertex shader --     entry point’s interface /must/ have either valid or@@ -3872,6 +3945,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDispatch-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDispatch-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -4020,7 +4103,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDispatch-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -4189,6 +4272,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDispatchIndirect-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDispatchIndirect-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -4338,7 +4431,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDispatchIndirect-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -8652,12 +8745,6 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been---     created with a @queryType@ that differs from that of any queries---     that are---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>---     within @commandBuffer@--- -- -   #VUID-vkCmdBeginQuery-None-00807# All queries used by the command --     /must/ be unavailable --@@ -8713,6 +8800,12 @@ --     instance, the sum of @query@ and the number of bits set in the --     current subpass’s view mask /must/ be less than or equal to the --     number of queries in @queryPool@+--+-- -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been+--     created with a @queryType@ that differs from that of any queries+--     that are+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>+--     within @commandBuffer@ -- -- -   #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to --     create @queryPool@ was
src/Vulkan/Core10/Device.hs view
@@ -549,6 +549,12 @@ --     @ppEnabledExtensionNames@ /must/ not contain both --     @VK_KHR_buffer_device_address@ and @VK_EXT_buffer_device_address@ --+-- -   #VUID-VkDeviceCreateInfo-pNext-04748# if the @pNext@ chain includes+--     a 'Vulkan.Core12.PhysicalDeviceVulkan12Features' structure and+--     'Vulkan.Core12.PhysicalDeviceVulkan12Features'::@bufferDeviceAddress@+--     is VK_TRUE, @ppEnabledExtensionNames@ /must/ not contain+--     @VK_EXT_buffer_device_address@+-- -- -   #VUID-VkDeviceCreateInfo-pNext-02829# If the @pNext@ chain includes --     a 'Vulkan.Core12.PhysicalDeviceVulkan11Features' structure, then it --     /must/ not include a
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -147,7 +147,8 @@ -- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ -- | '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_DRAW_INDIRECT_BIT'                             |+-- | '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',                           |
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -49,6 +49,12 @@                                                         , STRUCTURE_TYPE_MEMORY_BARRIER                                                         , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                                         , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+                                                        , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX+                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA+                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA                                                         , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE                                                         , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT@@ -706,8 +712,10 @@ -- 'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV', -- 'Vulkan.Extensions.VK_INTEL_performance_query.InitializePerformanceApiInfoINTEL',@@ -724,11 +732,13 @@ -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.MemoryHostPointerPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo', -- 'Vulkan.Extensions.VK_EXT_memory_priority.MemoryPriorityAllocateInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryWin32HandlePropertiesKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryZirconHandlePropertiesFUCHSIA', -- 'Vulkan.Extensions.VK_EXT_metal_surface.MetalSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT', -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE',@@ -957,9 +967,11 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionImageFormatProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.ScreenSurfaceCreateInfoQNX', -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo', -- 'Vulkan.Extensions.VK_KHR_synchronization2.SemaphoreSubmitInfoKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo',@@ -1104,6 +1116,18 @@ pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO               = StructureType 47 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO" pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                 = StructureType 48+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"+pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX            = StructureType 1000378000+-- 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"+pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA     = StructureType 1000364002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"+pattern STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA   = StructureType 1000364001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA  = StructureType 1000364000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE" pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = StructureType 1000351002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"@@ -2025,6 +2049,12 @@              STRUCTURE_TYPE_MEMORY_BARRIER,              STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,              STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,+             STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,+             STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,+             STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,+             STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,+             STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,+             STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,              STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,              STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,              STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,@@ -2519,6 +2549,12 @@   , (STRUCTURE_TYPE_MEMORY_BARRIER                           , "MEMORY_BARRIER")   , (STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO              , "LOADER_INSTANCE_CREATE_INFO")   , (STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                , "LOADER_DEVICE_CREATE_INFO")+  , (STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX           , "SCREEN_SURFACE_CREATE_INFO_QNX")+  , (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_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE, "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE     , "PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -13,6 +13,7 @@                                                )                                        , SampleMask                                        , Flags+                                       , Flags64                                        , DeviceSize                                        , DeviceAddress                                        , StructureType(..)@@ -569,11 +570,11 @@ -- -- Bitmasks are passed to many commands and structures to compactly -- represent options, but 'Flags' is not used directly in the API. Instead,--- a @Vk*Flags@ type which is an alias of 'Flags', and whose name matches--- the corresponding @Vk*FlagBits@ that are valid for that type, is used.+-- a 'Flags' type which is an alias of 'Flags', and whose name matches the+-- corresponding @Vk*FlagBits@ that are valid for that type, is used. ----- Any @Vk*Flags@ member or parameter used in the API as an input /must/ be--- a valid combination of bit flags. A valid combination is either zero or+-- Any 'Flags' member or parameter used in the API as an input /must/ be a+-- valid combination of bit flags. A valid combination is either zero or -- the bitwise OR of valid bit flags. A bit flag is valid if: -- -- -   The bit flag is defined as part of the @Vk*FlagBits@ type, where the@@ -587,7 +588,7 @@ --     example, in some cases, certain bit flags or combinations of bit --     flags are mutually exclusive. ----- Any @Vk*Flags@ member or parameter returned from a query command or+-- Any 'Flags' member or parameter returned from a query command or -- otherwise output from Vulkan to the application /may/ contain bit flags -- undefined in its corresponding @Vk*FlagBits@ type. An application -- /cannot/ rely on the state of these unspecified bits.@@ -606,6 +607,10 @@ -- -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags' type Flags = Word32+++-- No documentation found for TopLevel "VkFlags64"+type Flags64 = Word64   -- | VkDeviceSize - Vulkan device memory size and offsets
src/Vulkan/Core10/Handles.hs view
@@ -87,6 +87,7 @@ -- 'Vulkan.Core10.DeviceInitialization.createInstance', -- 'Vulkan.Extensions.VK_MVK_macos_surface.createMacOSSurfaceMVK', -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.createScreenSurfaceQNX', -- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.createStreamDescriptorSurfaceGGP', -- 'Vulkan.Extensions.VK_NN_vi_surface.createViSurfaceNN', -- 'Vulkan.Extensions.VK_KHR_wayland_surface.createWaylandSurfaceKHR',@@ -172,6 +173,7 @@ -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2', -- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2KHR',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.getPhysicalDeviceScreenPresentationSupportQNX', -- 'Vulkan.Core10.SparseResourceMemoryManagement.getPhysicalDeviceSparseImageFormatProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceSparseImageFormatProperties2', -- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceSparseImageFormatProperties2KHR',@@ -355,6 +357,8 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandleKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.getMemoryWin32HandleNV', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandlePropertiesKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandleFUCHSIA',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandlePropertiesFUCHSIA', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getPastPresentationTimingGOOGLE', -- 'Vulkan.Extensions.VK_INTEL_performance_query.getPerformanceParameterINTEL', -- 'Vulkan.Core10.PipelineCache.getPipelineCacheData',@@ -373,6 +377,7 @@ -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.getSemaphoreCounterValueKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.getSemaphoreFdKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.getSemaphoreWin32HandleKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.getSemaphoreZirconHandleFUCHSIA', -- 'Vulkan.Extensions.VK_AMD_shader_info.getShaderInfoAMD', -- 'Vulkan.Extensions.VK_EXT_display_control.getSwapchainCounterEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR',@@ -382,6 +387,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.importFenceWin32HandleKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.importSemaphoreFdKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.importSemaphoreWin32HandleKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.importSemaphoreZirconHandleFUCHSIA', -- 'Vulkan.Extensions.VK_INTEL_performance_query.initializePerformanceApiINTEL', -- 'Vulkan.Core10.Memory.invalidateMappedMemoryRanges', -- 'Vulkan.Core10.Memory.mapMemory',@@ -630,6 +636,7 @@ -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',@@ -999,9 +1006,11 @@ -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo', -- 'Vulkan.Extensions.VK_KHR_synchronization2.SemaphoreSubmitInfoKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo',
src/Vulkan/Core10/Image.hs view
@@ -1302,6 +1302,23 @@ --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT', then --     @arrayLayers@ /must/ be @1@. --+-- -   #VUID-VkImageCreateInfo-pNext-04737# If a+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+--     structure was included in the @pNext@ chain and+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+--     is not zero then all of the formats in+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@+--     /must/ be compatible with the @format@ as described in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>+--+-- -   #VUID-VkImageCreateInfo-flags-04738# If @flags@ does not contain+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'+--     and the @pNext@ chain include a+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+--     structure then+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+--     /must/ be @0@ or @1@+-- -- = Valid Usage (Implicit) -- -- -   #VUID-VkImageCreateInfo-sType-sType# @sType@ /must/ be
src/Vulkan/Core10/ImageView.hs view
@@ -909,6 +909,12 @@ --     flag, the @levelCount@ and @layerCount@ members of --     @subresourceRange@ /must/ both be @1@ --+-- -   #VUID-VkImageViewCreateInfo-image-04739# If @image@ was created with+--     the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT'+--     flag and @format@ is a non-compressed format, @viewType@ /must/ not+--     be 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'+-- -- -   #VUID-VkImageViewCreateInfo-pNext-01585# If a --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo' --     structure was included in the @pNext@ chain of the@@ -917,25 +923,6 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@ --     is not zero then @format@ /must/ be one of the formats in --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@------ -   #VUID-VkImageViewCreateInfo-pNext-04082# If a---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'---     structure was included in the @pNext@ chain of the---     'Vulkan.Core10.Image.ImageCreateInfo' structure used when creating---     @image@ and---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@---     is not zero then all of the formats in---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@---     /must/ be compatible with the @format@ as described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>------ -   #VUID-VkImageViewCreateInfo-flags-04083# If @flags@ does not contain---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'---     and the @pNext@ chain include a---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'---     structure then---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@---     /must/ be @0@ or @1@ -- -- -   #VUID-VkImageViewCreateInfo-image-01586# If @image@ was created with --     the
src/Vulkan/Core10/Memory.hs view
@@ -83,6 +83,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (ImportMemoryHostPointerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ImportMemoryWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ImportMemoryWin32HandleInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (ImportMemoryZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedAllocateInfo) import Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags)@@ -795,7 +796,7 @@ -- @pNext@ chain includes one of the following structures: -- -- -   'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR'---     with non-zero @handleType@ value+--     with a non-zero @handleType@ value -- -- -   'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR' --     with a non-zero @handleType@ value@@ -806,6 +807,9 @@ -- -   'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' --     with a non-@NULL@ @buffer@ value --+-- -   'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA'+--     with a non-zero @handleType@ value+-- -- If the parameters define an import operation and the external handle -- type is -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT',@@ -1109,6 +1113,23 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo'::@opaqueCaptureAddress@ --     /must/ be zero --+-- -   #VUID-VkMemoryAllocateInfo-None-04749# If the parameters define an+--     import operation and the external handle type is+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA',+--     the value of @memoryTypeIndex@ /must/ be an index identifying a+--     memory type from the @memoryTypeBits@ field of the+--     'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryZirconHandlePropertiesFUCHSIA'+--     structure populated by a call to+--     'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandlePropertiesFUCHSIA'.+--+-- -   #VUID-VkMemoryAllocateInfo-allocationSize-04750# If the parameters+--     define an import operation and the external handle type is+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA',+--     the value of @allocationSize@ /must/ be greater than @0@ and /must/+--     be less than or equal to the size of the VMO as determined by+--     @zx_vmo_get_size@(@handle@) where @handle@ is the VMO handle to the+--     imported external memory.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkMemoryAllocateInfo-sType-sType# @sType@ /must/ be@@ -1127,6 +1148,7 @@ --     'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT', --     'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR', --     'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV',+--     'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA', --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo', --     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo', --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo',@@ -1170,6 +1192,7 @@     | Just Refl <- eqT @e @MemoryDedicatedAllocateInfo = Just f     | Just Refl <- eqT @e @MemoryAllocateFlagsInfo = Just f     | Just Refl <- eqT @e @ImportMemoryFdInfoKHR = Just f+    | Just Refl <- eqT @e @ImportMemoryZirconHandleInfoFUCHSIA = Just f     | Just Refl <- eqT @e @ExportMemoryWin32HandleInfoKHR = Just f     | Just Refl <- eqT @e @ImportMemoryWin32HandleInfoKHR = Just f     | Just Refl <- eqT @e @ExportMemoryAllocateInfo = Just f@@ -1230,15 +1253,16 @@ --     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @offset@ /must/ be within --     the currently mapped range of @memory@ ----- -   #VUID-VkMappedMemoryRange-size-01389# If @size@ is equal to---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', the end of the current---     mapping of @memory@ /must/ be a multiple of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@nonCoherentAtomSize@---     bytes from the beginning of the memory object--- -- -   #VUID-VkMappedMemoryRange-offset-00687# @offset@ /must/ be a --     multiple of --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@nonCoherentAtomSize@+--+-- -   #VUID-VkMappedMemoryRange-size-01389# If @size@ is equal to+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', the end of the current+--     mapping of @memory@ /must/ either be a multiple of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@nonCoherentAtomSize@+--     bytes from the beginning of the memory object, or be equal to the+--     end of the memory object -- -- -   #VUID-VkMappedMemoryRange-size-01390# If @size@ is not equal to --     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ either be a
src/Vulkan/Core10/OtherTypes.hs view
@@ -583,7 +583,7 @@ --     @image@ /must/ have been created with --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' --     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- -   #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03939# If --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a
src/Vulkan/Core10/Pipeline.hs view
@@ -602,6 +602,11 @@ -- -- = Description --+-- Note+--+-- Despite their names, @minDepth@ /can/ be less than, equal to, or greater+-- than @maxDepth@.+-- -- The framebuffer depth coordinate @z@f /may/ be represented using either -- a fixed-point or floating-point representation. However, a -- floating-point representation /must/ be used if the depth\/stencil@@ -699,8 +704,7 @@     width :: Float   , -- No documentation found for Nested "VkViewport" "height"     height :: Float-  , -- | @minDepth@ and @maxDepth@ are the depth range for the viewport. It is-    -- valid for @minDepth@ to be greater than or equal to @maxDepth@.+  , -- | @minDepth@ and @maxDepth@ are the depth range for the viewport.     minDepth :: Float   , -- No documentation found for Nested "VkViewport" "maxDepth"     maxDepth :: Float
src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs view
@@ -8,6 +8,7 @@                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT+                                                                                               , EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID@@ -63,6 +64,8 @@ -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' | No restriction                                                                                             | No restriction                                                                                             | -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'              | No restriction                                                                                             | No restriction                                                                                             |+-- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- -- External memory handle types compatibility --@@ -93,13 +96,16 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.getMemoryHostPointerPropertiesEXT',--- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandlePropertiesKHR'+-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandlePropertiesKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandlePropertiesFUCHSIA' newtype ExternalMemoryHandleTypeFlagBits = ExternalMemoryHandleTypeFlagBits Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) @@ -147,6 +153,9 @@ -- 12 committed resource. It owns a reference to the memory used by the -- Direct3D resource. pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT                  = ExternalMemoryHandleTypeFlagBits 0x00000040+-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA' is a Zircon handle+-- to a virtual memory object.+pattern EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA              = ExternalMemoryHandleTypeFlagBits 0x00000800 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT' -- specifies a host pointer to /host mapped foreign memory/. It does not -- own a reference to the underlying memory resource, and will therefore@@ -185,6 +194,7 @@   , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT              , "D3D11_TEXTURE_KMT_BIT")   , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT                     , "D3D12_HEAP_BIT")   , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT                 , "D3D12_RESOURCE_BIT")+  , (EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA             , "ZIRCON_VMO_BIT_FUCHSIA")   , (EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT , "HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT")   , (EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT            , "HOST_ALLOCATION_BIT_EXT")   , (EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, "ANDROID_HARDWARE_BUFFER_BIT_ANDROID")
src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs view
@@ -7,6 +7,7 @@                                                                                                      , EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT                                                                                                      , EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT                                                                                                      , EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT+                                                                                                     , EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA                                                                                                      , ..                                                                                                      )                                                                 ) where@@ -47,19 +48,21 @@ -- underlying physical device and\/or the same driver version, as defined -- in the following table: ----- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | Handle type                                           | 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'::@driverUUID@ | 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'::@deviceUUID@ |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT'        | Must match                                                                                                 | Must match                                                                                                 |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT'     | Must match                                                                                                 | Must match                                                                                                 |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT' | Must match                                                                                                 | Must match                                                                                                 |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT'      | Must match                                                                                                 | Must match                                                                                                 |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT'          | No restriction                                                                                             | No restriction                                                                                             |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | Handle type                                               | 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'::@driverUUID@ | 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'::@deviceUUID@ |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT'            | Must match                                                                                                 | Must match                                                                                                 |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT'         | Must match                                                                                                 | Must match                                                                                                 |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT'     | Must match                                                                                                 | Must match                                                                                                 |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT'          | Must match                                                                                                 | Must match                                                                                                 |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT'              | No restriction                                                                                             | No restriction                                                                                             |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA' | No restriction                                                                                             | No restriction                                                                                             |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- -- External semaphore handle types compatibility --@@ -68,9 +71,11 @@ -- 'ExternalSemaphoreHandleTypeFlags', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.PhysicalDeviceExternalSemaphoreInfo', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR',--- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR'+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA' newtype ExternalSemaphoreHandleTypeFlagBits = ExternalSemaphoreHandleTypeFlagBits Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) @@ -81,14 +86,14 @@ -- Additionally, it /must/ be transportable over a socket using an -- @SCM_RIGHTS@ control message. It owns a reference to the underlying -- synchronization primitive represented by its Vulkan semaphore object.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT        = ExternalSemaphoreHandleTypeFlagBits 0x00000001+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT            = ExternalSemaphoreHandleTypeFlagBits 0x00000001 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT' specifies an NT handle -- that has only limited valid usage outside of Vulkan and other compatible -- APIs. It /must/ be compatible with the functions @DuplicateHandle@, -- @CloseHandle@, @CompareObjectHandles@, @GetHandleInformation@, and -- @SetHandleInformation@. It owns a reference to the underlying -- synchronization primitive represented by its Vulkan semaphore object.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT     = ExternalSemaphoreHandleTypeFlagBits 0x00000002+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT         = ExternalSemaphoreHandleTypeFlagBits 0x00000002 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT' specifies a global -- share handle that has only limited valid usage outside of Vulkan and -- other compatible APIs. It is not compatible with any native APIs. It@@ -96,13 +101,13 @@ -- represented its Vulkan semaphore object, and will therefore become -- invalid when all Vulkan semaphore objects associated with it are -- destroyed.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000004+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT     = ExternalSemaphoreHandleTypeFlagBits 0x00000004 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT' specifies an NT handle -- returned by @ID3D12Device@::@CreateSharedHandle@ referring to a Direct3D -- 12 fence, or @ID3D11Device5@::'Vulkan.Core10.Fence.createFence' by a -- Direct3D 11 fence. It owns a reference to the underlying synchronization -- primitive associated with the Direct3D fence.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT      = ExternalSemaphoreHandleTypeFlagBits 0x00000008+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT          = ExternalSemaphoreHandleTypeFlagBits 0x00000008 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT' specifies a POSIX file -- descriptor handle to a Linux Sync File or Android Fence object. It can -- be used with any native API accepting a valid sync file or fence as@@ -110,7 +115,13 @@ -- associated with the file descriptor. Implementations which support -- importing this handle type /must/ accept any type of sync or fence FD -- supported by the native system they are running on.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT          = ExternalSemaphoreHandleTypeFlagBits 0x00000010+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT              = ExternalSemaphoreHandleTypeFlagBits 0x00000010+-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA' specifies a+-- handle to a Zircon event object. It can be used with any native API that+-- accepts a Zircon event handle. Zircon event handles are created with+-- @ZX_RIGHTS_BASIC@ and @ZX_RIGHTS_SIGNAL@ rights. Vulkan on Fuchsia uses+-- only the ZX_EVENT_SIGNALED bit when signaling or waiting.+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = ExternalSemaphoreHandleTypeFlagBits 0x00000080  conNameExternalSemaphoreHandleTypeFlagBits :: String conNameExternalSemaphoreHandleTypeFlagBits = "ExternalSemaphoreHandleTypeFlagBits"@@ -120,11 +131,12 @@  showTableExternalSemaphoreHandleTypeFlagBits :: [(ExternalSemaphoreHandleTypeFlagBits, String)] showTableExternalSemaphoreHandleTypeFlagBits =-  [ (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT       , "OPAQUE_FD_BIT")-  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT    , "OPAQUE_WIN32_BIT")-  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, "OPAQUE_WIN32_KMT_BIT")-  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT     , "D3D12_FENCE_BIT")-  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT         , "SYNC_FD_BIT")+  [ (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT           , "OPAQUE_FD_BIT")+  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT        , "OPAQUE_WIN32_BIT")+  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT    , "OPAQUE_WIN32_KMT_BIT")+  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT         , "D3D12_FENCE_BIT")+  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT             , "SYNC_FD_BIT")+  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA, "ZIRCON_EVENT_BIT_FUCHSIA")   ]  instance Show ExternalSemaphoreHandleTypeFlagBits where
src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs view
@@ -47,13 +47,11 @@     storageBuffer16BitAccess :: Bool   , -- | #extension-features-uniformAndStorageBuffer16BitAccess#     -- @uniformAndStorageBuffer16BitAccess@ specifies whether objects in the-    -- @Uniform@ storage class with the @Block@ decoration and in the-    -- @StorageBuffer@, @ShaderRecordBufferKHR@, or @PhysicalStorageBuffer@-    -- storage class with the same decoration /can/ have 16-bit integer and-    -- 16-bit floating-point members. If this feature is not enabled, 16-bit-    -- integer or 16-bit floating-point members /must/ not be used in such-    -- objects. This also specifies whether shader modules /can/ declare the-    -- @UniformAndStorageBuffer16BitAccess@ capability.+    -- @Uniform@ storage class with the @Block@ decoration /can/ have 16-bit+    -- integer and 16-bit floating-point members. If this feature is not+    -- enabled, 16-bit integer or 16-bit floating-point members /must/ not be+    -- used in such objects. This also specifies whether shader modules /can/+    -- declare the @UniformAndStorageBuffer16BitAccess@ capability.     uniformAndStorageBuffer16BitAccess :: Bool   , -- | #extension-features-storagePushConstant16# @storagePushConstant16@     -- specifies whether objects in the @PushConstant@ storage class /can/ have
src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs view
@@ -277,6 +277,24 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' --     set in 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ --+-- -   #VUID-VkMemoryDedicatedAllocateInfo-image-04751# If @image@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' and+--     'Vulkan.Core10.Memory.MemoryAllocateInfo' defines a memory import+--     operation with handle type+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA',+--     the memory being imported /must/ also be a dedicated image+--     allocation and @image@ /must/ be identical to the image associated+--     with the imported memory+--+-- -   #VUID-VkMemoryDedicatedAllocateInfo-buffer-04752# If @buffer@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' and+--     'Vulkan.Core10.Memory.MemoryAllocateInfo' defines a memory import+--     operation with handle type+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA',+--     the memory being imported /must/ also be a dedicated buffer+--     allocation and @buffer@ /must/ be identical to the buffer associated+--     with the imported memory+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkMemoryDedicatedAllocateInfo-sType-sType# @sType@ /must/ be
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -265,6 +265,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDispatchBase-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDispatchBase-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -415,7 +425,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDispatchBase-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a
src/Vulkan/Core12.hs view
@@ -139,13 +139,11 @@     storageBuffer16BitAccess :: Bool   , -- | #features-uniformAndStorageBuffer16BitAccess#     -- @uniformAndStorageBuffer16BitAccess@ specifies whether objects in the-    -- @Uniform@ storage class with the @Block@ decoration and in the-    -- @StorageBuffer@, @ShaderRecordBufferKHR@, or @PhysicalStorageBuffer@-    -- storage class with the same decoration /can/ have 16-bit integer and-    -- 16-bit floating-point members. If this feature is not enabled, 16-bit-    -- integer or 16-bit floating-point members /must/ not be used in such-    -- objects. This also specifies whether shader modules /can/ declare the-    -- @UniformAndStorageBuffer16BitAccess@ capability.+    -- @Uniform@ storage class with the @Block@ decoration /can/ have 16-bit+    -- integer and 16-bit floating-point members. If this feature is not+    -- enabled, 16-bit integer or 16-bit floating-point members /must/ not be+    -- used in such objects. This also specifies whether shader modules /can/+    -- declare the @UniformAndStorageBuffer16BitAccess@ capability.     uniformAndStorageBuffer16BitAccess :: Bool   , -- | #features-storagePushConstant16# @storagePushConstant16@ specifies     -- whether objects in the @PushConstant@ storage class /can/ have 16-bit@@ -529,13 +527,11 @@ -- -- -   #features-uniformAndStorageBuffer8BitAccess# --     @uniformAndStorageBuffer8BitAccess@ indicates whether objects in the---     @Uniform@ storage class with the @Block@ decoration and in the---     @StorageBuffer@, @ShaderRecordBufferKHR@, or @PhysicalStorageBuffer@---     storage class with the same decoration /can/ have 8-bit integer---     members. If this feature is not enabled, 8-bit integer members---     /must/ not be used in such objects. This also indicates whether---     shader modules /can/ declare the @UniformAndStorageBuffer8BitAccess@---     capability.+--     @Uniform@ storage class with the @Block@ decoration /can/ have 8-bit+--     integer members. If this feature is not enabled, 8-bit integer+--     members /must/ not be used in such objects. This also indicates+--     whether shader modules /can/ declare the+--     @UniformAndStorageBuffer8BitAccess@ capability. -- -- -   #features-storagePushConstant8# @storagePushConstant8@ indicates --     whether objects in the @PushConstant@ storage class /can/ have 8-bit
src/Vulkan/Core12/Enums/SemaphoreType.hs view
@@ -27,9 +27,9 @@ -- or unsignaled. When created, the semaphore is in the unsignaled state. pattern SEMAPHORE_TYPE_BINARY   = SemaphoreType 0 -- | 'SEMAPHORE_TYPE_TIMELINE' specifies a /timeline semaphore/ type that has--- a monotonically increasing 64-bit unsigned integer payload indicating--- whether the semaphore is signaled with respect to a particular reference--- value. When created, the semaphore payload has the value given by the+-- a strictly increasing 64-bit unsigned integer payload indicating whether+-- the semaphore is signaled with respect to a particular reference value.+-- When created, the semaphore payload has the value given by the -- @initialValue@ field of -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo'. pattern SEMAPHORE_TYPE_TIMELINE = SemaphoreType 1
src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs view
@@ -46,12 +46,11 @@     storageBuffer8BitAccess :: Bool   , -- | #extension-features-uniformAndStorageBuffer8BitAccess#     -- @uniformAndStorageBuffer8BitAccess@ indicates whether objects in the-    -- @Uniform@ storage class with the @Block@ decoration and in the-    -- @StorageBuffer@, @ShaderRecordBufferKHR@, or @PhysicalStorageBuffer@-    -- storage class with the same decoration /can/ have 8-bit integer members.-    -- If this feature is not enabled, 8-bit integer members /must/ not be used-    -- in such objects. This also indicates whether shader modules /can/-    -- declare the @UniformAndStorageBuffer8BitAccess@ capability.+    -- @Uniform@ storage class with the @Block@ decoration /can/ have 8-bit+    -- integer members. If this feature is not enabled, 8-bit integer members+    -- /must/ not be used in such objects. This also indicates whether shader+    -- modules /can/ declare the @UniformAndStorageBuffer8BitAccess@+    -- capability.     uniformAndStorageBuffer8BitAccess :: Bool   , -- | #extension-features-storagePushConstant8# @storagePushConstant8@     -- indicates whether objects in the @PushConstant@ storage class /can/ have
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -968,6 +968,43 @@ --     or --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL', --+-- -   #VUID-VkAttachmentReference2-attachment-04754# If @attachment@ is+--     not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format+--     of the referenced attachment is a color format, @layout@ /must/ not+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkAttachmentReference2-attachment-04755# If @attachment@ is+--     not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format+--     of the referenced attachment is a depth\/stencil format which+--     includes both depth and stencil aspects, and @layout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     the @pNext@ chain /must/ include a+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'+--     structure+--+-- -   #VUID-VkAttachmentReference2-attachment-04756# If @attachment@ is+--     not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format+--     of the referenced attachment is a depth\/stencil format which+--     includes only the depth aspect, @layout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkAttachmentReference2-attachment-04757# If @attachment@ is+--     not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format+--     of the referenced attachment is a depth\/stencil format which+--     includes only the stencil aspect, @layout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkAttachmentReference2-sType-sType# @sType@ /must/ be
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -54,6 +54,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDrawIndirectCount-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDrawIndirectCount-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -204,7 +214,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDrawIndirectCount-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -448,6 +458,13 @@ --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --+-- -   #VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     neither the @@ nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndirectCount-None-04007# All vertex input bindings --     accessed via vertex input variables declared in the vertex shader --     entry point’s interface /must/ have either valid or@@ -631,6 +648,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -783,7 +810,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -1029,6 +1056,13 @@ --     then the @blendEnable@ member of the corresponding element of the --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     neither the @@ nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04007# All vertex input --     bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Dynamic.hs view
@@ -204,6 +204,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_win32 (ImportFenceWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (ImportSemaphoreFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ImportSemaphoreWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (ImportSemaphoreZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.Enums.IndexType (IndexType) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.Handles (IndirectCommandsLayoutNV)@@ -218,12 +219,14 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (MemoryGetAndroidHardwareBufferInfoANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryGetFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryGetWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (MemoryHostPointerPropertiesEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags) import {-# SOURCE #-} Vulkan.Core10.MemoryManagement (MemoryRequirements) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_memory_requirements2 (MemoryRequirements2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryZirconHandlePropertiesFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_surface (MetalSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (MultisamplePropertiesEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.ObjectType (ObjectType)@@ -300,10 +303,13 @@ import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Handles (SamplerYcbcrConversion) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (ScreenSurfaceCreateInfoQNX)+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (Screen_window) import {-# SOURCE #-} Vulkan.Core10.Handles (Semaphore) import {-# SOURCE #-} Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (SemaphoreGetFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (SemaphoreGetWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (SemaphoreGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreSignalInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (ShaderGroupShaderKHR)@@ -352,6 +358,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (Xcb_connection_t) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (Xcb_visualid_t) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (XlibSurfaceCreateInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t) data InstanceCmds = InstanceCmds   { instanceCmdsHandle :: Ptr Instance_T   , pVkDestroyInstance :: FunPtr (Ptr Instance_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())@@ -393,6 +400,8 @@   , pVkGetPhysicalDeviceDirectFBPresentationSupportEXT :: FunPtr (Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("dfb" ::: Ptr IDirectFB) -> IO Bool32)   , pVkCreateImagePipeSurfaceFUCHSIA :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr ImagePipeSurfaceCreateInfoFUCHSIA) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)   , pVkCreateStreamDescriptorSurfaceGGP :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr StreamDescriptorSurfaceCreateInfoGGP) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)+  , pVkCreateScreenSurfaceQNX :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr ScreenSurfaceCreateInfoQNX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)+  , pVkGetPhysicalDeviceScreenPresentationSupportQNX :: FunPtr (Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> Ptr Screen_window -> IO Bool32)   , pVkCreateDebugReportCallbackEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCallback" ::: Ptr DebugReportCallbackEXT) -> IO Result)   , pVkDestroyDebugReportCallbackEXT :: FunPtr (Ptr Instance_T -> DebugReportCallbackEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkDebugReportMessageEXT :: FunPtr (Ptr Instance_T -> DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> IO ())@@ -453,7 +462,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 nullFunPtr nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr  -- | A version of 'getInstanceProcAddr' which can be called -- with a null pointer for the instance.@@ -511,6 +520,8 @@   vkGetPhysicalDeviceDirectFBPresentationSupportEXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"#)   vkCreateImagePipeSurfaceFUCHSIA <- getInstanceProcAddr' handle (Ptr "vkCreateImagePipeSurfaceFUCHSIA"#)   vkCreateStreamDescriptorSurfaceGGP <- getInstanceProcAddr' handle (Ptr "vkCreateStreamDescriptorSurfaceGGP"#)+  vkCreateScreenSurfaceQNX <- getInstanceProcAddr' handle (Ptr "vkCreateScreenSurfaceQNX"#)+  vkGetPhysicalDeviceScreenPresentationSupportQNX <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceScreenPresentationSupportQNX"#)   vkCreateDebugReportCallbackEXT <- getInstanceProcAddr' handle (Ptr "vkCreateDebugReportCallbackEXT"#)   vkDestroyDebugReportCallbackEXT <- getInstanceProcAddr' handle (Ptr "vkDestroyDebugReportCallbackEXT"#)   vkDebugReportMessageEXT <- getInstanceProcAddr' handle (Ptr "vkDebugReportMessageEXT"#)@@ -595,6 +606,8 @@     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("dfb" ::: Ptr IDirectFB) -> IO Bool32) vkGetPhysicalDeviceDirectFBPresentationSupportEXT)     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr ImagePipeSurfaceCreateInfoFUCHSIA) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateImagePipeSurfaceFUCHSIA)     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr StreamDescriptorSurfaceCreateInfoGGP) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateStreamDescriptorSurfaceGGP)+    (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr ScreenSurfaceCreateInfoQNX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateScreenSurfaceQNX)+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> Ptr Screen_window -> IO Bool32) vkGetPhysicalDeviceScreenPresentationSupportQNX)     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCallback" ::: Ptr DebugReportCallbackEXT) -> IO Result) vkCreateDebugReportCallbackEXT)     (castFunPtr @_ @(Ptr Instance_T -> DebugReportCallbackEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDebugReportCallbackEXT)     (castFunPtr @_ @(Ptr Instance_T -> DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> IO ()) vkDebugReportMessageEXT)@@ -790,10 +803,14 @@   , pVkGetMemoryWin32HandlePropertiesKHR :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> HANDLE -> ("pMemoryWin32HandleProperties" ::: Ptr MemoryWin32HandlePropertiesKHR) -> IO Result)   , pVkGetMemoryFdKHR :: FunPtr (Ptr Device_T -> ("pGetFdInfo" ::: Ptr MemoryGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result)   , 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)   , 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)   , pVkImportSemaphoreFdKHR :: FunPtr (Ptr Device_T -> ("pImportSemaphoreFdInfo" ::: Ptr ImportSemaphoreFdInfoKHR) -> IO Result)+  , pVkGetSemaphoreZirconHandleFUCHSIA :: FunPtr (Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr SemaphoreGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result)+  , pVkImportSemaphoreZirconHandleFUCHSIA :: FunPtr (Ptr Device_T -> ("pImportSemaphoreZirconHandleInfo" ::: Ptr ImportSemaphoreZirconHandleInfoFUCHSIA) -> IO Result)   , pVkGetFenceWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr FenceGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result)   , pVkImportFenceWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pImportFenceWin32HandleInfo" ::: Ptr ImportFenceWin32HandleInfoKHR) -> IO Result)   , pVkGetFenceFdKHR :: FunPtr (Ptr Device_T -> ("pGetFdInfo" ::: Ptr FenceGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result)@@ -1012,7 +1029,8 @@     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1181,10 +1199,14 @@   vkGetMemoryWin32HandlePropertiesKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryWin32HandlePropertiesKHR"#)   vkGetMemoryFdKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryFdKHR"#)   vkGetMemoryFdPropertiesKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryFdPropertiesKHR"#)+  vkGetMemoryZirconHandleFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetMemoryZirconHandleFUCHSIA"#)+  vkGetMemoryZirconHandlePropertiesFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetMemoryZirconHandlePropertiesFUCHSIA"#)   vkGetSemaphoreWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkGetSemaphoreWin32HandleKHR"#)   vkImportSemaphoreWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkImportSemaphoreWin32HandleKHR"#)   vkGetSemaphoreFdKHR <- getDeviceProcAddr' handle (Ptr "vkGetSemaphoreFdKHR"#)   vkImportSemaphoreFdKHR <- getDeviceProcAddr' handle (Ptr "vkImportSemaphoreFdKHR"#)+  vkGetSemaphoreZirconHandleFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetSemaphoreZirconHandleFUCHSIA"#)+  vkImportSemaphoreZirconHandleFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkImportSemaphoreZirconHandleFUCHSIA"#)   vkGetFenceWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkGetFenceWin32HandleKHR"#)   vkImportFenceWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkImportFenceWin32HandleKHR"#)   vkGetFenceFdKHR <- getDeviceProcAddr' handle (Ptr "vkGetFenceFdKHR"#)@@ -1506,10 +1528,14 @@     (castFunPtr @_ @(Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> HANDLE -> ("pMemoryWin32HandleProperties" ::: Ptr MemoryWin32HandlePropertiesKHR) -> IO Result) vkGetMemoryWin32HandlePropertiesKHR)     (castFunPtr @_ @(Ptr Device_T -> ("pGetFdInfo" ::: Ptr MemoryGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result) vkGetMemoryFdKHR)     (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 -> ("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)     (castFunPtr @_ @(Ptr Device_T -> ("pImportSemaphoreFdInfo" ::: Ptr ImportSemaphoreFdInfoKHR) -> IO Result) vkImportSemaphoreFdKHR)+    (castFunPtr @_ @(Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr SemaphoreGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result) vkGetSemaphoreZirconHandleFUCHSIA)+    (castFunPtr @_ @(Ptr Device_T -> ("pImportSemaphoreZirconHandleInfo" ::: Ptr ImportSemaphoreZirconHandleInfoFUCHSIA) -> IO Result) vkImportSemaphoreZirconHandleFUCHSIA)     (castFunPtr @_ @(Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr FenceGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result) vkGetFenceWin32HandleKHR)     (castFunPtr @_ @(Ptr Device_T -> ("pImportFenceWin32HandleInfo" ::: Ptr ImportFenceWin32HandleInfoKHR) -> IO Result) vkImportFenceWin32HandleKHR)     (castFunPtr @_ @(Ptr Device_T -> ("pGetFdInfo" ::: Ptr FenceGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result) vkGetFenceFdKHR)
src/Vulkan/Extensions.hs view
@@ -94,6 +94,8 @@                           , module Vulkan.Extensions.VK_EXT_validation_flags                           , module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor                           , module Vulkan.Extensions.VK_EXT_ycbcr_image_arrays+                          , module Vulkan.Extensions.VK_FUCHSIA_external_memory+                          , module Vulkan.Extensions.VK_FUCHSIA_external_semaphore                           , module Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface                           , module Vulkan.Extensions.VK_GGP_frame_token                           , module Vulkan.Extensions.VK_GGP_stream_descriptor_surface@@ -227,6 +229,7 @@                           , module Vulkan.Extensions.VK_QCOM_render_pass_store_ops                           , module Vulkan.Extensions.VK_QCOM_render_pass_transform                           , module Vulkan.Extensions.VK_QCOM_rotated_copy_commands+                          , module Vulkan.Extensions.VK_QNX_screen_surface                           , module Vulkan.Extensions.VK_VALVE_mutable_descriptor_type                           ) where import Vulkan.Extensions.Dependencies@@ -323,6 +326,8 @@ import Vulkan.Extensions.VK_EXT_validation_flags import Vulkan.Extensions.VK_EXT_vertex_attribute_divisor import Vulkan.Extensions.VK_EXT_ycbcr_image_arrays+import Vulkan.Extensions.VK_FUCHSIA_external_memory+import Vulkan.Extensions.VK_FUCHSIA_external_semaphore import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface import Vulkan.Extensions.VK_GGP_frame_token import Vulkan.Extensions.VK_GGP_stream_descriptor_surface@@ -456,5 +461,6 @@ import Vulkan.Extensions.VK_QCOM_render_pass_store_ops import Vulkan.Extensions.VK_QCOM_render_pass_transform import Vulkan.Extensions.VK_QCOM_rotated_copy_commands+import Vulkan.Extensions.VK_QNX_screen_surface import Vulkan.Extensions.VK_VALVE_mutable_descriptor_type 
src/Vulkan/Extensions/Dependencies.hs view
@@ -59,6 +59,8 @@ import Vulkan.Extensions.VK_EXT_transform_feedback (pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (pattern EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (pattern EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME)+import Vulkan.Extensions.VK_FUCHSIA_external_memory (pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME)+import Vulkan.Extensions.VK_FUCHSIA_external_semaphore (pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME) import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (pattern FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME) 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)@@ -166,6 +168,7 @@ import Vulkan.Extensions.VK_NV_win32_keyed_mutex (pattern NV_WIN32_KEYED_MUTEX_EXTENSION_NAME) import Vulkan.Extensions.VK_QCOM_render_pass_transform (pattern QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME) import Vulkan.Extensions.VK_QCOM_rotated_copy_commands (pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME)+import Vulkan.Extensions.VK_QNX_screen_surface (pattern QNX_SCREEN_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (pattern VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME) -- | The set of other extensions required to use this extension extensionDependencies :: ("extensionName" ::: ByteString) -> [ByteString]@@ -455,13 +458,8 @@   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]   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_CREATE_RENDERPASS_2_EXTENSION_NAME-    , KHR_MULTIVIEW_EXTENSION_NAME-    , KHR_MAINTENANCE2_EXTENSION_NAME-    ]-  KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_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]   NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME ->     [ KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME     , KHR_CREATE_RENDERPASS_2_EXTENSION_NAME@@ -481,6 +479,17 @@   EXT_DIRECTFB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME ->     [KHR_MAINTENANCE3_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME ->+    [ KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME+    , KHR_EXTERNAL_MEMORY_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]+  FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME ->+    [ KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME+    , KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]+  QNX_SCREEN_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   _ -> []  -- | The minimum required API version to use this extension
src/Vulkan/Extensions/Handles.hs view
@@ -299,6 +299,7 @@ -- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.createImagePipeSurfaceFUCHSIA', -- 'Vulkan.Extensions.VK_MVK_macos_surface.createMacOSSurfaceMVK', -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.createScreenSurfaceQNX', -- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.createStreamDescriptorSurfaceGGP', -- 'Vulkan.Extensions.VK_NN_vi_surface.createViSurfaceNN', -- 'Vulkan.Extensions.VK_KHR_wayland_surface.createWaylandSurfaceKHR',@@ -355,7 +356,7 @@ -- presentation engine. Use of a presentable image /must/ occur only after -- the image is returned by -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR', and before it--- is presented by 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR'.+-- is released by 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR'. -- This includes transitioning the image layout and rendering commands. -- -- An application /can/ acquire use of a presentable image with
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -113,6 +113,12 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@timestampPeriod@ -- makes it possible to calculate future device timestamps as follows: --+-- 6) In what queue are timestamp values in time domain+-- 'TIME_DOMAIN_DEVICE_EXT' captured by 'getCalibratedTimestampsEXT'?+--+-- __RESOLVED__: An implementation supporting this extension will have all+-- its VkQueue share the same time domain.+-- -- > futureTimestamp = calibratedTimestamp + deltaNanoseconds / timestampPeriod -- -- 6) Can the host and device timestamp values drift apart over longer@@ -147,6 +153,10 @@ -- -- == Version History --+-- -   Revision 2, 2021-03-16 (Lionel Landwerlin)+--+--     -   Specify requirement on device timestamps+-- -- -   Revision 1, 2018-10-04 (Daniel Rakos) -- --     -   Internal revisions.@@ -458,6 +468,15 @@ -- | VkTimeDomainEXT - Supported time domains -- -- = Description+--+-- Note+--+-- An implementation supporting @VK_EXT_calibrated_timestamps@ will use the+-- same time domain for all its 'Vulkan.Core10.Handles.Queue' so that+-- timestamp values reported for 'TIME_DOMAIN_DEVICE_EXT' can be matched to+-- any timestamp captured through+-- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or+-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR' . -- -- > struct timespec tv; -- > clock_gettime(CLOCK_MONOTONIC, &tv);
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot view
@@ -113,6 +113,12 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@timestampPeriod@ -- makes it possible to calculate future device timestamps as follows: --+-- 6) In what queue are timestamp values in time domain+-- 'TIME_DOMAIN_DEVICE_EXT' captured by 'getCalibratedTimestampsEXT'?+--+-- __RESOLVED__: An implementation supporting this extension will have all+-- its VkQueue share the same time domain.+-- -- > futureTimestamp = calibratedTimestamp + deltaNanoseconds / timestampPeriod -- -- 6) Can the host and device timestamp values drift apart over longer@@ -146,6 +152,10 @@ -- domains calibrated and thus can never be zero. -- -- == Version History+--+-- -   Revision 2, 2021-03-16 (Lionel Landwerlin)+--+--     -   Specify requirement on device timestamps -- -- -   Revision 1, 2018-10-04 (Daniel Rakos) --
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -235,7 +235,7 @@ -- >     PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT"); -- >     PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- >--- >     VkDebugUtilsMessengeCreateInfoEXT callback1 = {+-- >     VkDebugUtilsMessengerCreateInfoEXT callback1 = { -- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,  // sType -- >             NULL,                                                     // pNext -- >             0,                                                        // flags@@ -252,7 +252,7 @@ -- >     } -- > -- >     callback1.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT;--- >     callback1.pfnCallback = myDebugBreak;+-- >     callback1.pfnUserCallback = myDebugBreak; -- >     callback1.pUserData = NULL; -- >     res = pfnCreateDebugUtilsMessengerEXT(instance, &callback1, NULL, &cb2); -- >     if (res != VK_SUCCESS) {@@ -2158,13 +2158,16 @@ -- -- = Description ----- The callback /must/ not call 'destroyDebugUtilsMessengerEXT'.--- -- The callback returns a 'Vulkan.Core10.FundamentalTypes.Bool32', which is -- interpreted in a layer-specified manner. The application /should/ always -- return 'Vulkan.Core10.FundamentalTypes.FALSE'. The -- 'Vulkan.Core10.FundamentalTypes.TRUE' value is reserved for use in layer -- development.+--+-- == Valid Usage+--+-- -   #VUID-PFN_vkDebugUtilsMessengerCallbackEXT-None-04769# The callback+--     /must/ not make calls to any Vulkan commands. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot view
@@ -235,7 +235,7 @@ -- >     PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT"); -- >     PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- >--- >     VkDebugUtilsMessengeCreateInfoEXT callback1 = {+-- >     VkDebugUtilsMessengerCreateInfoEXT callback1 = { -- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,  // sType -- >             NULL,                                                     // pNext -- >             0,                                                        // flags@@ -252,7 +252,7 @@ -- >     } -- > -- >     callback1.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT;--- >     callback1.pfnCallback = myDebugBreak;+-- >     callback1.pfnUserCallback = myDebugBreak; -- >     callback1.pUserData = NULL; -- >     res = pfnCreateDebugUtilsMessengerEXT(instance, &callback1, NULL, &cb2); -- >     if (res != VK_SUCCESS) {
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs view
@@ -51,7 +51,7 @@ -- [__Interactions and External Dependencies__] -- --     -   This extension requires the---         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_EXT_shader_image_atomic_int64.html SPV_EXT_shader_image_int64>+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_image_int64.html SPV_EXT_shader_image_int64> --         SPIR-V extension. -- --     -   This extension requires the
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot view
@@ -51,7 +51,7 @@ -- [__Interactions and External Dependencies__] -- --     -   This extension requires the---         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_EXT_shader_image_atomic_int64.html SPV_EXT_shader_image_int64>+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_image_int64.html SPV_EXT_shader_image_int64> --         SPIR-V extension. -- --     -   This extension requires the
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -823,12 +823,6 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdBeginQueryIndexedEXT-queryPool-01922# @queryPool@ /must/---     have been created with a @queryType@ that differs from that of any---     queries that are---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>---     within @commandBuffer@--- -- -   #VUID-vkCmdBeginQueryIndexedEXT-None-00807# All queries used by the --     command /must/ be unavailable --@@ -885,6 +879,12 @@ --     in the current subpass’s view mask /must/ be less than or equal to --     the number of queries in @queryPool@ --+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryPool-04753# If the @queryPool@+--     was created with the same @queryType@ as that of another+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>+--     query within @commandBuffer@, then @index@ /must/ not match the+--     index used for the active query+-- -- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-02338# If the @queryType@ --     used to create @queryPool@ was --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'@@ -1189,6 +1189,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -1341,7 +1351,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -1587,6 +1597,13 @@ --     then the @blendEnable@ member of the corresponding element of the --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     neither the @@ nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04007# All vertex input --     bindings accessed via vertex input variables declared in the vertex
+ src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs view
@@ -0,0 +1,511 @@+{-# language CPP #-}+-- | = Name+--+-- VK_FUCHSIA_external_memory - device extension+--+-- == VK_FUCHSIA_external_memory+--+-- [__Name String__]+--     @VK_FUCHSIA_external_memory@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     365+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_external_memory_capabilities@+--+--     -   Requires @VK_KHR_external_memory@+--+-- [__Contact__]+--+--     -   John Rosasco+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_FUCHSIA_external_memory:%20&body=@rosasco%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-03-01+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Craig Stout, Google+--+--     -   John Bauman, Google+--+--     -   John Rosasco, Google+--+-- == Description+--+-- Vulkan apps may wish to export or import device memory handles to or+-- from other logical devices, instances or APIs.+--+-- This memory sharing can eliminate copies of memory buffers when+-- different subsystems need to interoperate on them. Sharing memory+-- buffers may also facilitate a better distribution of processing workload+-- for more complex memory manipulation pipelines.+--+-- == New Commands+--+-- -   'getMemoryZirconHandleFUCHSIA'+--+-- -   'getMemoryZirconHandlePropertiesFUCHSIA'+--+-- == New Structures+--+-- -   'MemoryGetZirconHandleInfoFUCHSIA'+--+-- -   'MemoryZirconHandlePropertiesFUCHSIA'+--+-- -   Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo':+--+--     -   'ImportMemoryZirconHandleInfoFUCHSIA'+--+-- == New Enum Constants+--+-- -   'FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME'+--+-- -   'FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits':+--+--     -   'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA'+--+-- == Issues+--+-- See @VK_KHR_external_memory@ issues list for further information.+--+-- == Version History+--+-- -   Revision 1, 2021-03-01 (John Rosasco)+--+--     -   Initial draft+--+-- = See Also+--+-- 'ImportMemoryZirconHandleInfoFUCHSIA',+-- 'MemoryGetZirconHandleInfoFUCHSIA',+-- 'MemoryZirconHandlePropertiesFUCHSIA', 'getMemoryZirconHandleFUCHSIA',+-- 'getMemoryZirconHandlePropertiesFUCHSIA'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_FUCHSIA_external_memory  ( getMemoryZirconHandleFUCHSIA+                                                     , getMemoryZirconHandlePropertiesFUCHSIA+                                                     , ImportMemoryZirconHandleInfoFUCHSIA(..)+                                                     , MemoryZirconHandlePropertiesFUCHSIA(..)+                                                     , MemoryGetZirconHandleInfoFUCHSIA(..)+                                                     , FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION+                                                     , pattern FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION+                                                     , FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME+                                                     , pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME+                                                     , Zx_handle_t+                                                     ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.NamedType ((:::))+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Dynamic (DeviceCmds(pVkGetMemoryZirconHandleFUCHSIA))+import Vulkan.Dynamic (DeviceCmds(pVkGetMemoryZirconHandlePropertiesFUCHSIA))+import Vulkan.Core10.Handles (DeviceMemory)+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits)+import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits(..))+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetMemoryZirconHandleFUCHSIA+  :: FunPtr (Ptr Device_T -> Ptr MemoryGetZirconHandleInfoFUCHSIA -> Ptr Zx_handle_t -> IO Result) -> Ptr Device_T -> Ptr MemoryGetZirconHandleInfoFUCHSIA -> Ptr Zx_handle_t -> IO Result++-- | vkGetMemoryZirconHandleFUCHSIA - Get a Zircon handle for an external+-- memory object+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device', 'MemoryGetZirconHandleInfoFUCHSIA'+getMemoryZirconHandleFUCHSIA :: forall io+                              . (MonadIO io)+                             => -- | @device@ is the VkDevice.+                                --+                                -- #VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter# @device@ /must/+                                -- be a valid 'Vulkan.Core10.Handles.Device' handle+                                Device+                             -> -- | @pGetZirconHandleInfo@ is a pointer to a+                                -- 'MemoryGetZirconHandleInfoFUCHSIA' structure.+                                --+                                -- #VUID-vkGetMemoryZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter#+                                -- @pGetZirconHandleInfo@ /must/ be a valid pointer to a valid+                                -- 'MemoryGetZirconHandleInfoFUCHSIA' structure+                                MemoryGetZirconHandleInfoFUCHSIA+                             -> io (("zirconHandle" ::: Zx_handle_t))+getMemoryZirconHandleFUCHSIA device getZirconHandleInfo = liftIO . evalContT $ do+  let vkGetMemoryZirconHandleFUCHSIAPtr = pVkGetMemoryZirconHandleFUCHSIA (deviceCmds (device :: Device))+  lift $ unless (vkGetMemoryZirconHandleFUCHSIAPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryZirconHandleFUCHSIA is null" Nothing Nothing+  let vkGetMemoryZirconHandleFUCHSIA' = mkVkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIAPtr+  pGetZirconHandleInfo <- ContT $ withCStruct (getZirconHandleInfo)+  pPZirconHandle <- ContT $ bracket (callocBytes @Zx_handle_t 4) free+  r <- lift $ traceAroundEvent "vkGetMemoryZirconHandleFUCHSIA" (vkGetMemoryZirconHandleFUCHSIA' (deviceHandle (device)) pGetZirconHandleInfo (pPZirconHandle))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pZirconHandle <- lift $ peek @Zx_handle_t pPZirconHandle+  pure $ (pZirconHandle)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetMemoryZirconHandlePropertiesFUCHSIA+  :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> Zx_handle_t -> Ptr MemoryZirconHandlePropertiesFUCHSIA -> IO Result) -> Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> Zx_handle_t -> Ptr MemoryZirconHandlePropertiesFUCHSIA -> IO Result++-- | vkGetMemoryZirconHandlePropertiesFUCHSIA - Get a Zircon handle+-- properties for an external memory object+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_INVALID_EXTERNAL_HANDLE'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits',+-- 'MemoryZirconHandlePropertiesFUCHSIA'+getMemoryZirconHandlePropertiesFUCHSIA :: forall io+                                        . (MonadIO io)+                                       => -- | @device@ is the VkDevice.+                                          --+                                          -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter#+                                          -- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+                                          Device+                                       -> -- | @handleType@ is the type of @zirconHandle@+                                          --+                                          -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773#+                                          -- @handleType@ /must/ be+                                          -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'.+                                          --+                                          -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-parameter#+                                          -- @handleType@ /must/ be a valid+                                          -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+                                          -- value+                                          ExternalMemoryHandleTypeFlagBits+                                       -> -- | @zirconHandle@ is a @zx_handle_t@ (Zircon) handle to the external+                                          -- resource.+                                          --+                                          -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774#+                                          -- @zirconHandle@ must reference a valid VMO.+                                          ("zirconHandle" ::: Zx_handle_t)+                                       -> io (MemoryZirconHandlePropertiesFUCHSIA)+getMemoryZirconHandlePropertiesFUCHSIA device handleType zirconHandle = liftIO . evalContT $ do+  let vkGetMemoryZirconHandlePropertiesFUCHSIAPtr = pVkGetMemoryZirconHandlePropertiesFUCHSIA (deviceCmds (device :: Device))+  lift $ unless (vkGetMemoryZirconHandlePropertiesFUCHSIAPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryZirconHandlePropertiesFUCHSIA is null" Nothing Nothing+  let vkGetMemoryZirconHandlePropertiesFUCHSIA' = mkVkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIAPtr+  pPMemoryZirconHandleProperties <- ContT (withZeroCStruct @MemoryZirconHandlePropertiesFUCHSIA)+  r <- lift $ traceAroundEvent "vkGetMemoryZirconHandlePropertiesFUCHSIA" (vkGetMemoryZirconHandlePropertiesFUCHSIA' (deviceHandle (device)) (handleType) (zirconHandle) (pPMemoryZirconHandleProperties))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pMemoryZirconHandleProperties <- lift $ peekCStruct @MemoryZirconHandlePropertiesFUCHSIA pPMemoryZirconHandleProperties+  pure $ (pMemoryZirconHandleProperties)+++-- | VkImportMemoryZirconHandleInfoFUCHSIA - Structure specifying import+-- parameters for Zircon handle to external memory+--+-- == Valid Usage+--+-- -   #VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771#+--     @handleType@ /must/ be+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'.+--+-- -   #VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772# @handle@+--     must be a valid VMO handle.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- -   #VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameter# If+--     @handleType@ is not @0@, @handleType@ /must/ be a valid+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+--     value+--+-- = See Also+--+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImportMemoryZirconHandleInfoFUCHSIA = ImportMemoryZirconHandleInfoFUCHSIA+  { -- | @handleType@ is the type of @handle@.+    handleType :: ExternalMemoryHandleTypeFlagBits+  , -- | @handle@ is a @zx_handle_t@ (Zircon) handle to the external memory.+    handle :: Zx_handle_t+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImportMemoryZirconHandleInfoFUCHSIA)+#endif+deriving instance Show ImportMemoryZirconHandleInfoFUCHSIA++instance ToCStruct ImportMemoryZirconHandleInfoFUCHSIA where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImportMemoryZirconHandleInfoFUCHSIA{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ExternalMemoryHandleTypeFlagBits)) (handleType)+    poke ((p `plusPtr` 20 :: Ptr Zx_handle_t)) (handle)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct ImportMemoryZirconHandleInfoFUCHSIA where+  peekCStruct p = do+    handleType <- peek @ExternalMemoryHandleTypeFlagBits ((p `plusPtr` 16 :: Ptr ExternalMemoryHandleTypeFlagBits))+    handle <- peek @Zx_handle_t ((p `plusPtr` 20 :: Ptr Zx_handle_t))+    pure $ ImportMemoryZirconHandleInfoFUCHSIA+             handleType handle++instance Storable ImportMemoryZirconHandleInfoFUCHSIA where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImportMemoryZirconHandleInfoFUCHSIA where+  zero = ImportMemoryZirconHandleInfoFUCHSIA+           zero+           zero+++-- | VkMemoryZirconHandlePropertiesFUCHSIA - Structure specifying Zircon+-- handle compatible external memory+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getMemoryZirconHandlePropertiesFUCHSIA'+data MemoryZirconHandlePropertiesFUCHSIA = MemoryZirconHandlePropertiesFUCHSIA+  { -- | @memoryTypeBits@ a bitmask containing one bit set for every memory type+    -- which the specified handle can be imported as.+    memoryTypeBits :: Word32 }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MemoryZirconHandlePropertiesFUCHSIA)+#endif+deriving instance Show MemoryZirconHandlePropertiesFUCHSIA++instance ToCStruct MemoryZirconHandlePropertiesFUCHSIA where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MemoryZirconHandlePropertiesFUCHSIA{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (memoryTypeBits)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    f++instance FromCStruct MemoryZirconHandlePropertiesFUCHSIA where+  peekCStruct p = do+    memoryTypeBits <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pure $ MemoryZirconHandlePropertiesFUCHSIA+             memoryTypeBits++instance Storable MemoryZirconHandlePropertiesFUCHSIA where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MemoryZirconHandlePropertiesFUCHSIA where+  zero = MemoryZirconHandlePropertiesFUCHSIA+           zero+++-- | VkMemoryGetZirconHandleInfoFUCHSIA - Structure specifying export+-- parameters for Zircon handle to device memory+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.DeviceMemory',+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getMemoryZirconHandleFUCHSIA'+data MemoryGetZirconHandleInfoFUCHSIA = MemoryGetZirconHandleInfoFUCHSIA+  { -- | @memory@ the 'Vulkan.Core10.Handles.DeviceMemory' being exported.+    --+    -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameter# @memory@+    -- /must/ be a valid 'Vulkan.Core10.Handles.DeviceMemory' handle+    memory :: DeviceMemory+  , -- | @handleType@ is the type of the handle pointed to by @pZirconHandle@ as+    -- retrieved by the call to 'getMemoryZirconHandleFUCHSIA'.+    --+    -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775# @handleType@+    -- /must/ be+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'.+    --+    -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04776# @handleType@+    -- /must/ have been included in the @handleTypes@ field of the+    -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo'+    -- structure when the external memory was allocated.+    --+    -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-parameter#+    -- @handleType@ /must/ be a valid+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+    -- value+    handleType :: ExternalMemoryHandleTypeFlagBits+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MemoryGetZirconHandleInfoFUCHSIA)+#endif+deriving instance Show MemoryGetZirconHandleInfoFUCHSIA++instance ToCStruct MemoryGetZirconHandleInfoFUCHSIA where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MemoryGetZirconHandleInfoFUCHSIA{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceMemory)) (memory)+    poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (handleType)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceMemory)) (zero)+    poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (zero)+    f++instance FromCStruct MemoryGetZirconHandleInfoFUCHSIA where+  peekCStruct p = do+    memory <- peek @DeviceMemory ((p `plusPtr` 16 :: Ptr DeviceMemory))+    handleType <- peek @ExternalMemoryHandleTypeFlagBits ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits))+    pure $ MemoryGetZirconHandleInfoFUCHSIA+             memory handleType++instance Storable MemoryGetZirconHandleInfoFUCHSIA where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MemoryGetZirconHandleInfoFUCHSIA where+  zero = MemoryGetZirconHandleInfoFUCHSIA+           zero+           zero+++type FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION"+pattern FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION :: forall a . Integral a => a+pattern FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION = 1+++type FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_FUCHSIA_external_memory"++-- No documentation found for TopLevel "VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME"+pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_FUCHSIA_external_memory"+
+ src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot view
@@ -0,0 +1,149 @@+{-# language CPP #-}+-- | = Name+--+-- VK_FUCHSIA_external_memory - device extension+--+-- == VK_FUCHSIA_external_memory+--+-- [__Name String__]+--     @VK_FUCHSIA_external_memory@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     365+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_external_memory_capabilities@+--+--     -   Requires @VK_KHR_external_memory@+--+-- [__Contact__]+--+--     -   John Rosasco+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_FUCHSIA_external_memory:%20&body=@rosasco%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-03-01+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Craig Stout, Google+--+--     -   John Bauman, Google+--+--     -   John Rosasco, Google+--+-- == Description+--+-- Vulkan apps may wish to export or import device memory handles to or+-- from other logical devices, instances or APIs.+--+-- This memory sharing can eliminate copies of memory buffers when+-- different subsystems need to interoperate on them. Sharing memory+-- buffers may also facilitate a better distribution of processing workload+-- for more complex memory manipulation pipelines.+--+-- == New Commands+--+-- -   'getMemoryZirconHandleFUCHSIA'+--+-- -   'getMemoryZirconHandlePropertiesFUCHSIA'+--+-- == New Structures+--+-- -   'MemoryGetZirconHandleInfoFUCHSIA'+--+-- -   'MemoryZirconHandlePropertiesFUCHSIA'+--+-- -   Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo':+--+--     -   'ImportMemoryZirconHandleInfoFUCHSIA'+--+-- == New Enum Constants+--+-- -   'FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME'+--+-- -   'FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits':+--+--     -   'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA'+--+-- == Issues+--+-- See @VK_KHR_external_memory@ issues list for further information.+--+-- == Version History+--+-- -   Revision 1, 2021-03-01 (John Rosasco)+--+--     -   Initial draft+--+-- = See Also+--+-- 'ImportMemoryZirconHandleInfoFUCHSIA',+-- 'MemoryGetZirconHandleInfoFUCHSIA',+-- 'MemoryZirconHandlePropertiesFUCHSIA', 'getMemoryZirconHandleFUCHSIA',+-- 'getMemoryZirconHandlePropertiesFUCHSIA'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_FUCHSIA_external_memory  ( ImportMemoryZirconHandleInfoFUCHSIA+                                                     , MemoryGetZirconHandleInfoFUCHSIA+                                                     , MemoryZirconHandlePropertiesFUCHSIA+                                                     ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data ImportMemoryZirconHandleInfoFUCHSIA++instance ToCStruct ImportMemoryZirconHandleInfoFUCHSIA+instance Show ImportMemoryZirconHandleInfoFUCHSIA++instance FromCStruct ImportMemoryZirconHandleInfoFUCHSIA+++data MemoryGetZirconHandleInfoFUCHSIA++instance ToCStruct MemoryGetZirconHandleInfoFUCHSIA+instance Show MemoryGetZirconHandleInfoFUCHSIA++instance FromCStruct MemoryGetZirconHandleInfoFUCHSIA+++data MemoryZirconHandlePropertiesFUCHSIA++instance ToCStruct MemoryZirconHandlePropertiesFUCHSIA+instance Show MemoryZirconHandlePropertiesFUCHSIA++instance FromCStruct MemoryZirconHandlePropertiesFUCHSIA+
+ src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs view
@@ -0,0 +1,578 @@+{-# language CPP #-}+-- | = Name+--+-- VK_FUCHSIA_external_semaphore - device extension+--+-- == VK_FUCHSIA_external_semaphore+--+-- [__Name String__]+--     @VK_FUCHSIA_external_semaphore@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     366+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_external_semaphore_capabilities@+--+--     -   Requires @VK_KHR_external_semaphore@+--+-- [__Contact__]+--+--     -   John Rosasco+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_FUCHSIA_external_semaphore:%20&body=@rosasco%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-03-08+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Craig Stout, Google+--+--     -   John Bauman, Google+--+--     -   John Rosasco, Google+--+-- == Description+--+-- An application using external memory may wish to synchronize access to+-- that memory using semaphores. This extension enables an application to+-- export semaphore payload to and import semaphore payload from Zircon+-- event handles.+--+-- == New Commands+--+-- -   'getSemaphoreZirconHandleFUCHSIA'+--+-- -   'importSemaphoreZirconHandleFUCHSIA'+--+-- == New Structures+--+-- -   'ImportSemaphoreZirconHandleInfoFUCHSIA'+--+-- -   'SemaphoreGetZirconHandleInfoFUCHSIA'+--+-- == New Enum Constants+--+-- -   'FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME'+--+-- -   'FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits':+--+--     -   'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- == Issues+--+-- 1) Does the application need to close the Zircon event handle returned+-- by 'getSemaphoreZirconHandleFUCHSIA'?+--+-- __RESOLVED__: Yes, unless it is passed back in to a driver instance to+-- import the semaphore. A successful get call transfers ownership of the+-- Zircon event handle to the application, and a successful import+-- transfers it back to the driver. Destroying the original semaphore+-- object will not close the Zircon event handle nor remove its reference+-- to the underlying semaphore resource associated with it.+--+-- == Version History+--+-- -   Revision 1, 2021-03-08 (John Rosasco)+--+--     -   Initial revision+--+-- = See Also+--+-- 'ImportSemaphoreZirconHandleInfoFUCHSIA',+-- 'SemaphoreGetZirconHandleInfoFUCHSIA',+-- 'getSemaphoreZirconHandleFUCHSIA', 'importSemaphoreZirconHandleFUCHSIA'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_FUCHSIA_external_semaphore  ( getSemaphoreZirconHandleFUCHSIA+                                                        , importSemaphoreZirconHandleFUCHSIA+                                                        , ImportSemaphoreZirconHandleInfoFUCHSIA(..)+                                                        , SemaphoreGetZirconHandleInfoFUCHSIA(..)+                                                        , FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION+                                                        , pattern FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION+                                                        , FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME+                                                        , pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME+                                                        , Zx_handle_t+                                                        ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import 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 Control.Monad.Trans.Cont (ContT(..))+import Vulkan.NamedType ((:::))+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Dynamic (DeviceCmds(pVkGetSemaphoreZirconHandleFUCHSIA))+import Vulkan.Dynamic (DeviceCmds(pVkImportSemaphoreZirconHandleFUCHSIA))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits (ExternalSemaphoreHandleTypeFlagBits)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Handles (Semaphore)+import Vulkan.Core11.Enums.SemaphoreImportFlagBits (SemaphoreImportFlags)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetSemaphoreZirconHandleFUCHSIA+  :: FunPtr (Ptr Device_T -> Ptr SemaphoreGetZirconHandleInfoFUCHSIA -> Ptr Zx_handle_t -> IO Result) -> Ptr Device_T -> Ptr SemaphoreGetZirconHandleInfoFUCHSIA -> Ptr Zx_handle_t -> IO Result++-- | vkGetSemaphoreZirconHandleFUCHSIA - Get a Zircon event handle for a+-- semaphore+--+-- = Description+--+-- Each call to 'getSemaphoreZirconHandleFUCHSIA' /must/ create a Zircon+-- event handle and transfer ownership of it to the application. To avoid+-- leaking resources, the application /must/ release ownership of the+-- Zircon event handle when it is no longer needed.+--+-- Note+--+-- Ownership can be released in many ways. For example, the application can+-- call zx_handle_close() on the file descriptor, or transfer ownership+-- back to Vulkan by using the file descriptor to import a semaphore+-- payload.+--+-- Exporting a Zircon event handle from a semaphore /may/ have side effects+-- depending on the transference of the specified handle type, as described+-- in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>.+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device', 'SemaphoreGetZirconHandleInfoFUCHSIA'+getSemaphoreZirconHandleFUCHSIA :: forall io+                                 . (MonadIO io)+                                => -- | @device@ is the logical device that created the semaphore being+                                   -- exported.+                                   --+                                   -- #VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter# @device@+                                   -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+                                   Device+                                -> -- | @pGetZirconHandleInfo@ is a pointer to a+                                   -- 'SemaphoreGetZirconHandleInfoFUCHSIA' structure containing parameters of+                                   -- the export operation.+                                   --+                                   -- #VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter#+                                   -- @pGetZirconHandleInfo@ /must/ be a valid pointer to a valid+                                   -- 'SemaphoreGetZirconHandleInfoFUCHSIA' structure+                                   SemaphoreGetZirconHandleInfoFUCHSIA+                                -> io (("zirconHandle" ::: Zx_handle_t))+getSemaphoreZirconHandleFUCHSIA device getZirconHandleInfo = liftIO . evalContT $ do+  let vkGetSemaphoreZirconHandleFUCHSIAPtr = pVkGetSemaphoreZirconHandleFUCHSIA (deviceCmds (device :: Device))+  lift $ unless (vkGetSemaphoreZirconHandleFUCHSIAPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSemaphoreZirconHandleFUCHSIA is null" Nothing Nothing+  let vkGetSemaphoreZirconHandleFUCHSIA' = mkVkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIAPtr+  pGetZirconHandleInfo <- ContT $ withCStruct (getZirconHandleInfo)+  pPZirconHandle <- ContT $ bracket (callocBytes @Zx_handle_t 4) free+  r <- lift $ traceAroundEvent "vkGetSemaphoreZirconHandleFUCHSIA" (vkGetSemaphoreZirconHandleFUCHSIA' (deviceHandle (device)) pGetZirconHandleInfo (pPZirconHandle))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pZirconHandle <- lift $ peek @Zx_handle_t pPZirconHandle+  pure $ (pZirconHandle)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkImportSemaphoreZirconHandleFUCHSIA+  :: FunPtr (Ptr Device_T -> Ptr ImportSemaphoreZirconHandleInfoFUCHSIA -> IO Result) -> Ptr Device_T -> Ptr ImportSemaphoreZirconHandleInfoFUCHSIA -> IO Result++-- | vkImportSemaphoreZirconHandleFUCHSIA - Import a semaphore from a Zircon+-- event handle+--+-- = Description+--+-- Importing a semaphore payload from a Zircon event handle transfers+-- ownership of the handle from the application to the Vulkan+-- implementation. The application /must/ not perform any operations on the+-- handle after a successful import.+--+-- Applications /can/ import the same semaphore payload into multiple+-- instances of Vulkan, into the same instance from which it was exported,+-- and multiple times into a given Vulkan instance.+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_INVALID_EXTERNAL_HANDLE'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device', 'ImportSemaphoreZirconHandleInfoFUCHSIA'+importSemaphoreZirconHandleFUCHSIA :: forall io+                                    . (MonadIO io)+                                   => -- | @device@ is the logical device that created the semaphore.+                                      --+                                      -- #VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter# @device@+                                      -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+                                      Device+                                   -> -- | @pImportSemaphoreZirconHandleInfo@ is a pointer to a+                                      -- 'ImportSemaphoreZirconHandleInfoFUCHSIA' structure specifying the+                                      -- semaphore and import parameters.+                                      --+                                      -- #VUID-vkImportSemaphoreZirconHandleFUCHSIA-pImportSemaphoreZirconHandleInfo-parameter#+                                      -- @pImportSemaphoreZirconHandleInfo@ /must/ be a valid pointer to a valid+                                      -- 'ImportSemaphoreZirconHandleInfoFUCHSIA' structure+                                      ImportSemaphoreZirconHandleInfoFUCHSIA+                                   -> io ()+importSemaphoreZirconHandleFUCHSIA device importSemaphoreZirconHandleInfo = liftIO . evalContT $ do+  let vkImportSemaphoreZirconHandleFUCHSIAPtr = pVkImportSemaphoreZirconHandleFUCHSIA (deviceCmds (device :: Device))+  lift $ unless (vkImportSemaphoreZirconHandleFUCHSIAPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportSemaphoreZirconHandleFUCHSIA is null" Nothing Nothing+  let vkImportSemaphoreZirconHandleFUCHSIA' = mkVkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIAPtr+  pImportSemaphoreZirconHandleInfo <- ContT $ withCStruct (importSemaphoreZirconHandleInfo)+  r <- lift $ traceAroundEvent "vkImportSemaphoreZirconHandleFUCHSIA" (vkImportSemaphoreZirconHandleFUCHSIA' (deviceHandle (device)) pImportSemaphoreZirconHandleInfo)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++-- | VkImportSemaphoreZirconHandleInfoFUCHSIA - Structure specifying Zircon+-- event handle to import to a semaphore+--+-- = Description+--+-- The handle types supported by @handleType@ are:+--+-- +-------------------------------------------------------------------------------------------------------------------+------------------+---------------------++-- | Handle Type                                                                                                       | Transference     | Permanence          |+-- |                                                                                                                   |                  | Supported           |+-- +===================================================================================================================+==================+=====================++-- | 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA' | Reference        | Temporary,Permanent |+-- +-------------------------------------------------------------------------------------------------------------------+------------------+---------------------++--+-- Handle Types Supported by 'ImportSemaphoreZirconHandleInfoFUCHSIA'+--+-- == Valid Usage+--+-- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765#+--     @handleType@ /must/ be a value included in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphore-handletypes-zircon-handle Handle Types Supported by >+--     table.+--+-- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766#+--     @zirconHandle@ /must/ obey any requirements listed for @handleType@+--     in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>.+--+-- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767#+--     @zirconHandle@ /must/ have @ZX_RIGHTS_BASIC@ and @ZX_RIGHTS_SIGNAL@+--     rights.+--+-- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768#+--     The+--     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo'::@semaphoreType@+--     field /must/ not be+--     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE'.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNext# @pNext@+--     /must/ be @NULL@+--+-- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameter#+--     @semaphore@ /must/ be a valid 'Vulkan.Core10.Handles.Semaphore'+--     handle+--+-- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameter#+--     @flags@ /must/ be a valid combination of+--     'Vulkan.Core11.Enums.SemaphoreImportFlagBits.SemaphoreImportFlagBits'+--     values+--+-- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameter#+--     @handleType@ /must/ be a valid+--     'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+--     value+--+-- == Host Synchronization+--+-- -   Host access to @semaphore@ /must/ be externally synchronized+--+-- = See Also+--+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits',+-- 'Vulkan.Core10.Handles.Semaphore',+-- 'Vulkan.Core11.Enums.SemaphoreImportFlagBits.SemaphoreImportFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'importSemaphoreZirconHandleFUCHSIA'+data ImportSemaphoreZirconHandleInfoFUCHSIA = ImportSemaphoreZirconHandleInfoFUCHSIA+  { -- | @semaphore@ is the semaphore into which the payload will be imported.+    semaphore :: Semaphore+  , -- | @flags@ is a bitmask of+    -- 'Vulkan.Core11.Enums.SemaphoreImportFlagBits.SemaphoreImportFlagBits'+    -- specifying additional parameters for the semaphore payload import+    -- operation.+    flags :: SemaphoreImportFlags+  , -- | @handleType@ specifies the type of @zirconHandle@.+    handleType :: ExternalSemaphoreHandleTypeFlagBits+  , -- | @zirconHandle@ is the external handle to import.+    zirconHandle :: Zx_handle_t+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImportSemaphoreZirconHandleInfoFUCHSIA)+#endif+deriving instance Show ImportSemaphoreZirconHandleInfoFUCHSIA++instance ToCStruct ImportSemaphoreZirconHandleInfoFUCHSIA where+  withCStruct x f = allocaBytesAligned 40 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImportSemaphoreZirconHandleInfoFUCHSIA{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)+    poke ((p `plusPtr` 24 :: Ptr SemaphoreImportFlags)) (flags)+    poke ((p `plusPtr` 28 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (handleType)+    poke ((p `plusPtr` 32 :: Ptr Zx_handle_t)) (zirconHandle)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)+    poke ((p `plusPtr` 28 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Zx_handle_t)) (zero)+    f++instance FromCStruct ImportSemaphoreZirconHandleInfoFUCHSIA where+  peekCStruct p = do+    semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))+    flags <- peek @SemaphoreImportFlags ((p `plusPtr` 24 :: Ptr SemaphoreImportFlags))+    handleType <- peek @ExternalSemaphoreHandleTypeFlagBits ((p `plusPtr` 28 :: Ptr ExternalSemaphoreHandleTypeFlagBits))+    zirconHandle <- peek @Zx_handle_t ((p `plusPtr` 32 :: Ptr Zx_handle_t))+    pure $ ImportSemaphoreZirconHandleInfoFUCHSIA+             semaphore flags handleType zirconHandle++instance Storable ImportSemaphoreZirconHandleInfoFUCHSIA where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImportSemaphoreZirconHandleInfoFUCHSIA where+  zero = ImportSemaphoreZirconHandleInfoFUCHSIA+           zero+           zero+           zero+           zero+++-- | VkSemaphoreGetZirconHandleInfoFUCHSIA - Structure describing a Zircon+-- event handle semaphore export operation+--+-- = Description+--+-- The properties of the Zircon event handle returned depend on the value+-- of @handleType@. See+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+-- for a description of the properties of the defined external semaphore+-- handle types.+--+-- == Valid Usage+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04758#+--     @handleType@ /must/ have been included in+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo'::@handleTypes@+--     when @semaphore@’s current payload was created.+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759#+--     @semaphore@ /must/ not currently have its payload replaced by an+--     imported payload as described below in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+--     unless that imported payload’s handle type was included in+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties'::@exportFromImportedHandleTypes@+--     for @handleType@.+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760# If+--     @handleType@ refers to a handle type with copy payload transference+--     semantics, as defined below in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+--     there /must/ be no queue waiting on @semaphore@.+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04761# If+--     @handleType@ refers to a handle type with copy payload transference+--     semantics, @semaphore@ /must/ be signaled, or have an associated+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+--     pending execution.+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04762#+--     @handleType@ /must/ be defined as a Zircon event handle.+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04763#+--     @semaphore@ /must/ have been created with a+--     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of+--     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-pNext-pNext# @pNext@+--     /must/ be @NULL@+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-parameter#+--     @semaphore@ /must/ be a valid 'Vulkan.Core10.Handles.Semaphore'+--     handle+--+-- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-parameter#+--     @handleType@ /must/ be a valid+--     'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+--     value+--+-- = See Also+--+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits',+-- 'Vulkan.Core10.Handles.Semaphore',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getSemaphoreZirconHandleFUCHSIA'+data SemaphoreGetZirconHandleInfoFUCHSIA = SemaphoreGetZirconHandleInfoFUCHSIA+  { -- | @semaphore@ is the semaphore from which state will be exported.+    semaphore :: Semaphore+  , -- | @handleType@ is the type of handle requested.+    handleType :: ExternalSemaphoreHandleTypeFlagBits+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SemaphoreGetZirconHandleInfoFUCHSIA)+#endif+deriving instance Show SemaphoreGetZirconHandleInfoFUCHSIA++instance ToCStruct SemaphoreGetZirconHandleInfoFUCHSIA where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SemaphoreGetZirconHandleInfoFUCHSIA{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)+    poke ((p `plusPtr` 24 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (handleType)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)+    poke ((p `plusPtr` 24 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (zero)+    f++instance FromCStruct SemaphoreGetZirconHandleInfoFUCHSIA where+  peekCStruct p = do+    semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))+    handleType <- peek @ExternalSemaphoreHandleTypeFlagBits ((p `plusPtr` 24 :: Ptr ExternalSemaphoreHandleTypeFlagBits))+    pure $ SemaphoreGetZirconHandleInfoFUCHSIA+             semaphore handleType++instance Storable SemaphoreGetZirconHandleInfoFUCHSIA where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SemaphoreGetZirconHandleInfoFUCHSIA where+  zero = SemaphoreGetZirconHandleInfoFUCHSIA+           zero+           zero+++type FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION"+pattern FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION :: forall a . Integral a => a+pattern FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION = 1+++type FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME = "VK_FUCHSIA_external_semaphore"++-- No documentation found for TopLevel "VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME"+pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME = "VK_FUCHSIA_external_semaphore"+
+ src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot view
@@ -0,0 +1,138 @@+{-# language CPP #-}+-- | = Name+--+-- VK_FUCHSIA_external_semaphore - device extension+--+-- == VK_FUCHSIA_external_semaphore+--+-- [__Name String__]+--     @VK_FUCHSIA_external_semaphore@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     366+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_external_semaphore_capabilities@+--+--     -   Requires @VK_KHR_external_semaphore@+--+-- [__Contact__]+--+--     -   John Rosasco+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_FUCHSIA_external_semaphore:%20&body=@rosasco%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-03-08+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Craig Stout, Google+--+--     -   John Bauman, Google+--+--     -   John Rosasco, Google+--+-- == Description+--+-- An application using external memory may wish to synchronize access to+-- that memory using semaphores. This extension enables an application to+-- export semaphore payload to and import semaphore payload from Zircon+-- event handles.+--+-- == New Commands+--+-- -   'getSemaphoreZirconHandleFUCHSIA'+--+-- -   'importSemaphoreZirconHandleFUCHSIA'+--+-- == New Structures+--+-- -   'ImportSemaphoreZirconHandleInfoFUCHSIA'+--+-- -   'SemaphoreGetZirconHandleInfoFUCHSIA'+--+-- == New Enum Constants+--+-- -   'FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME'+--+-- -   'FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits':+--+--     -   'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- == Issues+--+-- 1) Does the application need to close the Zircon event handle returned+-- by 'getSemaphoreZirconHandleFUCHSIA'?+--+-- __RESOLVED__: Yes, unless it is passed back in to a driver instance to+-- import the semaphore. A successful get call transfers ownership of the+-- Zircon event handle to the application, and a successful import+-- transfers it back to the driver. Destroying the original semaphore+-- object will not close the Zircon event handle nor remove its reference+-- to the underlying semaphore resource associated with it.+--+-- == Version History+--+-- -   Revision 1, 2021-03-08 (John Rosasco)+--+--     -   Initial revision+--+-- = See Also+--+-- 'ImportSemaphoreZirconHandleInfoFUCHSIA',+-- 'SemaphoreGetZirconHandleInfoFUCHSIA',+-- 'getSemaphoreZirconHandleFUCHSIA', 'importSemaphoreZirconHandleFUCHSIA'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_FUCHSIA_external_semaphore  ( ImportSemaphoreZirconHandleInfoFUCHSIA+                                                        , SemaphoreGetZirconHandleInfoFUCHSIA+                                                        ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data ImportSemaphoreZirconHandleInfoFUCHSIA++instance ToCStruct ImportSemaphoreZirconHandleInfoFUCHSIA+instance Show ImportSemaphoreZirconHandleInfoFUCHSIA++instance FromCStruct ImportSemaphoreZirconHandleInfoFUCHSIA+++data SemaphoreGetZirconHandleInfoFUCHSIA++instance ToCStruct SemaphoreGetZirconHandleInfoFUCHSIA+instance Show SemaphoreGetZirconHandleInfoFUCHSIA++instance FromCStruct SemaphoreGetZirconHandleInfoFUCHSIA+
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot view
@@ -91,10 +91,13 @@ -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface  (ImagePipeSurfaceCreateInfoFUCHSIA) where+module Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface  ( ImagePipeSurfaceCreateInfoFUCHSIA+                                                       , Zx_handle_t+                                                       ) where  import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct)+import Data.Word (Word32) import Data.Kind (Type)  data ImagePipeSurfaceCreateInfoFUCHSIA@@ -103,4 +106,7 @@ instance Show ImagePipeSurfaceCreateInfoFUCHSIA  instance FromCStruct ImagePipeSurfaceCreateInfoFUCHSIA+++type Zx_handle_t = Word32 
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -1705,7 +1705,10 @@ -- -- -   A 64-bit integer of the count of the number of acceleration --     structure handles following. This will be zero for a bottom-level---     acceleration structure.+--     acceleration structure. For top-level acceleration structures this+--     number is implementation-dependent; the number of and ordering of+--     the handles may not match the instance descriptions which were used+--     to build the acceleration structure. -- -- The corresponding handles matching the values returned by -- 'getAccelerationStructureDeviceAddressKHR' or
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -415,9 +415,6 @@ -- -   #VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274# --     @pipeline@ member of @pExecutableInfo@ /must/ have been created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR'---     set in the @flags@ field of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' or---     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo' -- -- == Valid Usage (Implicit) --@@ -525,9 +522,6 @@ -- -   #VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278# --     @pipeline@ member of @pExecutableInfo@ /must/ have been created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'---     set in the @flags@ field of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' or---     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo' -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -895,6 +895,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdTraceRaysKHR-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdTraceRaysKHR-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -1045,7 +1055,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdTraceRaysKHR-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -1757,6 +1767,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -1909,7 +1929,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -23,8 +23,6 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ -----     -   Requires @VK_KHR_create_renderpass2@--- -- [__Contact__] -- --     -   Tobias Hector@@ -446,8 +444,7 @@                                                   , QueueFamilyCheckpointProperties2NV(..)                                                   , CheckpointData2NV(..)                                                   , PhysicalDeviceSynchronization2FeaturesKHR(..)-                                                  , AccessFlags2KHR(..)-                                                  , PipelineStageFlags2KHR(..)+                                                  , AccessFlags2KHR                                                   , AccessFlagBits2KHR( ACCESS_2_NONE_KHR                                                                       , ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR                                                                       , ACCESS_2_INDEX_READ_BIT_KHR@@ -482,6 +479,7 @@                                                                       , ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT                                                                       , ..                                                                       )+                                                  , PipelineStageFlags2KHR                                                   , PipelineStageFlagBits2KHR( PIPELINE_STAGE_2_NONE_KHR                                                                              , PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR                                                                              , PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR@@ -526,6 +524,7 @@                                                   , pattern KHR_SYNCHRONIZATION_2_SPEC_VERSION                                                   , KHR_SYNCHRONIZATION_2_EXTENSION_NAME                                                   , pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME+                                                  , Flags64                                                   ) where  import Vulkan.Internal.Utils (enumReadPrec)@@ -611,6 +610,7 @@ import Vulkan.Core10.Handles (Fence) import Vulkan.Core10.Handles (Fence(..)) import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Core10.FundamentalTypes (Flags64) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Enums.ImageLayout (ImageLayout) import Vulkan.Core10.ImageView (ImageSubresourceRange)@@ -644,6 +644,7 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2_KHR)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.FundamentalTypes (Flags64) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)   unsafe@@ -2316,10 +2317,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03921# If @srcAccessMask@+-- -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-04747# If @srcAccessMask@ --     includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', --     @srcStageMask@ /must/ include --     'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+--     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -2544,10 +2546,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03921# If @dstAccessMask@+-- -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-04747# If @dstAccessMask@ --     includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', --     @dstStageMask@ /must/ include --     'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+--     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -2623,16 +2626,16 @@ deriving instance Show MemoryBarrier2KHR  instance ToCStruct MemoryBarrier2KHR where-  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  withCStruct x f = allocaBytesAligned 48 8 $ \p -> pokeCStruct p x (f p)   pokeCStruct p MemoryBarrier2KHR{..} f = do     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)-    poke ((p `plusPtr` 20 :: Ptr AccessFlags2KHR)) (srcAccessMask)-    poke ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)-    poke ((p `plusPtr` 28 :: Ptr AccessFlags2KHR)) (dstAccessMask)+    poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)+    poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)+    poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)     f-  cStructSize = 32+  cStructSize = 48   cStructAlignment = 8   pokeZeroCStruct p f = do     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR)@@ -2642,14 +2645,14 @@ instance FromCStruct MemoryBarrier2KHR where   peekCStruct p = do     srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))-    srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 20 :: Ptr AccessFlags2KHR))-    dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR))-    dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 28 :: Ptr AccessFlags2KHR))+    srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))+    dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))+    dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))     pure $ MemoryBarrier2KHR              srcStageMask srcAccessMask dstStageMask dstAccessMask  instance Storable MemoryBarrier2KHR where-  sizeOf ~_ = 32+  sizeOf ~_ = 48   alignment ~_ = 8   peek = peekCStruct   poke ptr poked = pokeCStruct ptr poked (pure ())@@ -2937,10 +2940,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03921# If+-- -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04747# If --     @srcAccessMask@ includes --     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @srcStageMask@ --     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+--     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -3183,10 +3187,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03921# If+-- -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04747# If --     @dstAccessMask@ includes --     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @dstStageMask@ --     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+--     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -3421,7 +3426,7 @@ --     @image@ /must/ have been created with --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' --     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- -   #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03939# If --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a@@ -3625,34 +3630,34 @@     | otherwise = Nothing  instance (Extendss ImageMemoryBarrier2KHR es, PokeChain es) => ToCStruct (ImageMemoryBarrier2KHR es) where-  withCStruct x f = allocaBytesAligned 80 8 $ \p -> pokeCStruct p x (f p)+  withCStruct x f = allocaBytesAligned 96 8 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ImageMemoryBarrier2KHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR)     pNext'' <- fmap castPtr . ContT $ withChain (next)     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''     lift $ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)-    lift $ poke ((p `plusPtr` 20 :: Ptr AccessFlags2KHR)) (srcAccessMask)-    lift $ poke ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)-    lift $ poke ((p `plusPtr` 28 :: Ptr AccessFlags2KHR)) (dstAccessMask)-    lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (oldLayout)-    lift $ poke ((p `plusPtr` 36 :: Ptr ImageLayout)) (newLayout)-    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (srcQueueFamilyIndex)-    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (dstQueueFamilyIndex)-    lift $ poke ((p `plusPtr` 48 :: Ptr Image)) (image)-    lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceRange)) (subresourceRange)+    lift $ poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)+    lift $ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)+    lift $ poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)+    lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (oldLayout)+    lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (newLayout)+    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (srcQueueFamilyIndex)+    lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (dstQueueFamilyIndex)+    lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (image)+    lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (subresourceRange)     lift $ f-  cStructSize = 80+  cStructSize = 96   cStructAlignment = 8   pokeZeroCStruct p f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR)     pNext' <- fmap castPtr . ContT $ withZeroChain @es     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'-    lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)-    lift $ poke ((p `plusPtr` 36 :: Ptr ImageLayout)) (zero)-    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)-    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)-    lift $ poke ((p `plusPtr` 48 :: Ptr Image)) (zero)-    lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceRange)) (zero)+    lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (zero)+    lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (zero)+    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (zero)+    lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (zero)     lift $ f  instance (Extendss ImageMemoryBarrier2KHR es, PeekChain es) => FromCStruct (ImageMemoryBarrier2KHR es) where@@ -3660,15 +3665,15 @@     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)     srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))-    srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 20 :: Ptr AccessFlags2KHR))-    dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR))-    dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 28 :: Ptr AccessFlags2KHR))-    oldLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))-    newLayout <- peek @ImageLayout ((p `plusPtr` 36 :: Ptr ImageLayout))-    srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))-    dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))-    image <- peek @Image ((p `plusPtr` 48 :: Ptr Image))-    subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 56 :: Ptr ImageSubresourceRange))+    srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))+    dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))+    dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))+    oldLayout <- peek @ImageLayout ((p `plusPtr` 48 :: Ptr ImageLayout))+    newLayout <- peek @ImageLayout ((p `plusPtr` 52 :: Ptr ImageLayout))+    srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))+    dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))+    image <- peek @Image ((p `plusPtr` 64 :: Ptr Image))+    subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 72 :: Ptr ImageSubresourceRange))     pure $ ImageMemoryBarrier2KHR              next srcStageMask srcAccessMask dstStageMask dstAccessMask oldLayout newLayout srcQueueFamilyIndex dstQueueFamilyIndex image subresourceRange @@ -3937,10 +3942,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03921# If+-- -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04747# If --     @srcAccessMask@ includes --     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @srcStageMask@ --     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+--     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -4183,10 +4189,11 @@ --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03921# If+-- -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04747# If --     @dstAccessMask@ includes --     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @dstStageMask@ --     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+--     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -4355,48 +4362,48 @@ deriving instance Show BufferMemoryBarrier2KHR  instance ToCStruct BufferMemoryBarrier2KHR where-  withCStruct x f = allocaBytesAligned 64 8 $ \p -> pokeCStruct p x (f p)+  withCStruct x f = allocaBytesAligned 80 8 $ \p -> pokeCStruct p x (f p)   pokeCStruct p BufferMemoryBarrier2KHR{..} f = do     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)-    poke ((p `plusPtr` 20 :: Ptr AccessFlags2KHR)) (srcAccessMask)-    poke ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)-    poke ((p `plusPtr` 28 :: Ptr AccessFlags2KHR)) (dstAccessMask)-    poke ((p `plusPtr` 32 :: Ptr Word32)) (srcQueueFamilyIndex)-    poke ((p `plusPtr` 36 :: Ptr Word32)) (dstQueueFamilyIndex)-    poke ((p `plusPtr` 40 :: Ptr Buffer)) (buffer)-    poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (offset)-    poke ((p `plusPtr` 56 :: Ptr DeviceSize)) (size)+    poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)+    poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)+    poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex)+    poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer)+    poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset)+    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size)     f-  cStructSize = 64+  cStructSize = 80   cStructAlignment = 8   pokeZeroCStruct p f = do     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 40 :: Ptr Buffer)) (zero)-    poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 56 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero)+    poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)     f  instance FromCStruct BufferMemoryBarrier2KHR where   peekCStruct p = do     srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))-    srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 20 :: Ptr AccessFlags2KHR))-    dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR))-    dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 28 :: Ptr AccessFlags2KHR))-    srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))-    dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))-    buffer <- peek @Buffer ((p `plusPtr` 40 :: Ptr Buffer))-    offset <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize))-    size <- peek @DeviceSize ((p `plusPtr` 56 :: Ptr DeviceSize))+    srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))+    dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))+    dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))+    srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+    buffer <- peek @Buffer ((p `plusPtr` 56 :: Ptr Buffer))+    offset <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize))+    size <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))     pure $ BufferMemoryBarrier2KHR              srcStageMask srcAccessMask dstStageMask dstAccessMask srcQueueFamilyIndex dstQueueFamilyIndex buffer offset size  instance Storable BufferMemoryBarrier2KHR where-  sizeOf ~_ = 64+  sizeOf ~_ = 80   alignment ~_ = 8   peek = peekCStruct   poke ptr poked = pokeCStruct ptr poked (pure ())@@ -4493,16 +4500,16 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     lift $ poke ((p `plusPtr` 16 :: Ptr DependencyFlags)) (dependencyFlags)     lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))-    pPMemoryBarriers' <- ContT $ allocaBytesAligned @MemoryBarrier2KHR ((Data.Vector.length (memoryBarriers)) * 32) 8-    lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (32 * (i)) :: Ptr MemoryBarrier2KHR) (e)) (memoryBarriers)+    pPMemoryBarriers' <- ContT $ allocaBytesAligned @MemoryBarrier2KHR ((Data.Vector.length (memoryBarriers)) * 48) 8+    lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (48 * (i)) :: Ptr MemoryBarrier2KHR) (e)) (memoryBarriers)     lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2KHR))) (pPMemoryBarriers')     lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))-    pPBufferMemoryBarriers' <- ContT $ allocaBytesAligned @BufferMemoryBarrier2KHR ((Data.Vector.length (bufferMemoryBarriers)) * 64) 8-    lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (64 * (i)) :: Ptr BufferMemoryBarrier2KHR) (e)) (bufferMemoryBarriers)+    pPBufferMemoryBarriers' <- ContT $ allocaBytesAligned @BufferMemoryBarrier2KHR ((Data.Vector.length (bufferMemoryBarriers)) * 80) 8+    lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr BufferMemoryBarrier2KHR) (e)) (bufferMemoryBarriers)     lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2KHR))) (pPBufferMemoryBarriers')     lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))-    pPImageMemoryBarriers' <- ContT $ allocaBytesAligned @(ImageMemoryBarrier2KHR _) ((Data.Vector.length (imageMemoryBarriers)) * 80) 8-    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr (ImageMemoryBarrier2KHR _))) (e) . ($ ())) (imageMemoryBarriers)+    pPImageMemoryBarriers' <- ContT $ allocaBytesAligned @(ImageMemoryBarrier2KHR _) ((Data.Vector.length (imageMemoryBarriers)) * 96) 8+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (96 * (i)) :: Ptr (ImageMemoryBarrier2KHR _))) (e) . ($ ())) (imageMemoryBarriers)     lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2KHR _)))) (pPImageMemoryBarriers')     lift $ f   cStructSize = 64@@ -4517,13 +4524,13 @@     dependencyFlags <- peek @DependencyFlags ((p `plusPtr` 16 :: Ptr DependencyFlags))     memoryBarrierCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))     pMemoryBarriers <- peek @(Ptr MemoryBarrier2KHR) ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2KHR)))-    pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2KHR ((pMemoryBarriers `advancePtrBytes` (32 * (i)) :: Ptr MemoryBarrier2KHR)))+    pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2KHR ((pMemoryBarriers `advancePtrBytes` (48 * (i)) :: Ptr MemoryBarrier2KHR)))     bufferMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))     pBufferMemoryBarriers <- peek @(Ptr BufferMemoryBarrier2KHR) ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2KHR)))-    pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2KHR ((pBufferMemoryBarriers `advancePtrBytes` (64 * (i)) :: Ptr BufferMemoryBarrier2KHR)))+    pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2KHR ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr BufferMemoryBarrier2KHR)))     imageMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))     pImageMemoryBarriers <- peek @(Ptr (ImageMemoryBarrier2KHR _)) ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2KHR _))))-    pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr (ImageMemoryBarrier2KHR _)))))+    pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (96 * (i)) :: Ptr (ImageMemoryBarrier2KHR _)))))     pure $ DependencyInfoKHR              dependencyFlags pMemoryBarriers' pBufferMemoryBarriers' pImageMemoryBarriers' @@ -4633,23 +4640,23 @@ deriving instance Show SemaphoreSubmitInfoKHR  instance ToCStruct SemaphoreSubmitInfoKHR where-  withCStruct x f = allocaBytesAligned 40 8 $ \p -> pokeCStruct p x (f p)+  withCStruct x f = allocaBytesAligned 48 8 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SemaphoreSubmitInfoKHR{..} f = do     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)     poke ((p `plusPtr` 24 :: Ptr Word64)) (value)     poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (stageMask)-    poke ((p `plusPtr` 36 :: Ptr Word32)) (deviceIndex)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (deviceIndex)     f-  cStructSize = 40+  cStructSize = 48   cStructAlignment = 8   pokeZeroCStruct p f = do     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)     poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)-    poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)     f  instance FromCStruct SemaphoreSubmitInfoKHR where@@ -4657,12 +4664,12 @@     semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))     value <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))     stageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))-    deviceIndex <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+    deviceIndex <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))     pure $ SemaphoreSubmitInfoKHR              semaphore value stageMask deviceIndex  instance Storable SemaphoreSubmitInfoKHR where-  sizeOf ~_ = 40+  sizeOf ~_ = 48   alignment ~_ = 8   peek = peekCStruct   poke ptr poked = pokeCStruct ptr poked (pure ())@@ -4882,16 +4889,16 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''     lift $ poke ((p `plusPtr` 16 :: Ptr SubmitFlagsKHR)) (flags)     lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (waitSemaphoreInfos)) :: Word32))-    pPWaitSemaphoreInfos' <- ContT $ allocaBytesAligned @SemaphoreSubmitInfoKHR ((Data.Vector.length (waitSemaphoreInfos)) * 40) 8-    lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (40 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (waitSemaphoreInfos)+    pPWaitSemaphoreInfos' <- ContT $ allocaBytesAligned @SemaphoreSubmitInfoKHR ((Data.Vector.length (waitSemaphoreInfos)) * 48) 8+    lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (waitSemaphoreInfos)     lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfoKHR))) (pPWaitSemaphoreInfos')     lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (commandBufferInfos)) :: Word32))     pPCommandBufferInfos' <- ContT $ allocaBytesAligned @CommandBufferSubmitInfoKHR ((Data.Vector.length (commandBufferInfos)) * 32) 8     lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr CommandBufferSubmitInfoKHR) (e)) (commandBufferInfos)     lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfoKHR))) (pPCommandBufferInfos')     lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (signalSemaphoreInfos)) :: Word32))-    pPSignalSemaphoreInfos' <- ContT $ allocaBytesAligned @SemaphoreSubmitInfoKHR ((Data.Vector.length (signalSemaphoreInfos)) * 40) 8-    lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (40 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (signalSemaphoreInfos)+    pPSignalSemaphoreInfos' <- ContT $ allocaBytesAligned @SemaphoreSubmitInfoKHR ((Data.Vector.length (signalSemaphoreInfos)) * 48) 8+    lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (signalSemaphoreInfos)     lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfoKHR))) (pPSignalSemaphoreInfos')     lift $ f   cStructSize = 64@@ -4909,13 +4916,13 @@     flags <- peek @SubmitFlagsKHR ((p `plusPtr` 16 :: Ptr SubmitFlagsKHR))     waitSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))     pWaitSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfoKHR) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfoKHR)))-    pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pWaitSemaphoreInfos `advancePtrBytes` (40 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))+    pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pWaitSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))     commandBufferInfoCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))     pCommandBufferInfos <- peek @(Ptr CommandBufferSubmitInfoKHR) ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfoKHR)))     pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekCStruct @CommandBufferSubmitInfoKHR ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr CommandBufferSubmitInfoKHR)))     signalSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))     pSignalSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfoKHR) ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfoKHR)))-    pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pSignalSemaphoreInfos `advancePtrBytes` (40 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))+    pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pSignalSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))     pure $ SubmitInfo2KHR              next flags pWaitSemaphoreInfos' pCommandBufferInfos' pSignalSemaphoreInfos' @@ -5116,71 +5123,7 @@            zero  --- | VkAccessFlags2KHR - 64-bit mask of access flags------ = See Also------ 'BufferMemoryBarrier2KHR', 'ImageMemoryBarrier2KHR', 'MemoryBarrier2KHR'-newtype AccessFlags2KHR = AccessFlags2KHR Flags-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)----conNameAccessFlags2KHR :: String-conNameAccessFlags2KHR = "AccessFlags2KHR"--enumPrefixAccessFlags2KHR :: String-enumPrefixAccessFlags2KHR = ""--showTableAccessFlags2KHR :: [(AccessFlags2KHR, String)]-showTableAccessFlags2KHR = []--instance Show AccessFlags2KHR where-  showsPrec = enumShowsPrec enumPrefixAccessFlags2KHR-                            showTableAccessFlags2KHR-                            conNameAccessFlags2KHR-                            (\(AccessFlags2KHR x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read AccessFlags2KHR where-  readPrec = enumReadPrec enumPrefixAccessFlags2KHR showTableAccessFlags2KHR conNameAccessFlags2KHR AccessFlags2KHR----- | VkPipelineStageFlags2KHR - 64-bit mask of pipeline stage flags------ = See Also------ 'BufferMemoryBarrier2KHR', 'CheckpointData2NV',--- 'ImageMemoryBarrier2KHR', 'MemoryBarrier2KHR',--- 'QueueFamilyCheckpointProperties2NV', 'SemaphoreSubmitInfoKHR',--- 'cmdResetEvent2KHR', 'cmdWriteBufferMarker2AMD', 'cmdWriteTimestamp2KHR'-newtype PipelineStageFlags2KHR = PipelineStageFlags2KHR Flags-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)----conNamePipelineStageFlags2KHR :: String-conNamePipelineStageFlags2KHR = "PipelineStageFlags2KHR"--enumPrefixPipelineStageFlags2KHR :: String-enumPrefixPipelineStageFlags2KHR = ""--showTablePipelineStageFlags2KHR :: [(PipelineStageFlags2KHR, String)]-showTablePipelineStageFlags2KHR = []--instance Show PipelineStageFlags2KHR where-  showsPrec = enumShowsPrec enumPrefixPipelineStageFlags2KHR-                            showTablePipelineStageFlags2KHR-                            conNamePipelineStageFlags2KHR-                            (\(PipelineStageFlags2KHR x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read PipelineStageFlags2KHR where-  readPrec = enumReadPrec enumPrefixPipelineStageFlags2KHR-                          showTablePipelineStageFlags2KHR-                          conNamePipelineStageFlags2KHR-                          PipelineStageFlags2KHR-+type AccessFlags2KHR = AccessFlagBits2KHR  -- | VkAccessFlagBits2KHR - Access flags for VkAccessFlags2KHR --@@ -5203,30 +5146,30 @@ -- = See Also -- -- No cross-references are available-newtype AccessFlagBits2KHR = AccessFlagBits2KHR Flags+newtype AccessFlagBits2KHR = AccessFlagBits2KHR Flags64   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'ACCESS_2_NONE_KHR' specifies no accesses.-pattern ACCESS_2_NONE_KHR                               = AccessFlagBits2KHR 0x00000000+pattern ACCESS_2_NONE_KHR                               = AccessFlagBits2KHR 0x0000000000000000 -- | 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR' specifies read access to -- indirect buffers in the 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR' -- pipeline stage.-pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR          = AccessFlagBits2KHR 0x00000001+pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR          = AccessFlagBits2KHR 0x0000000000000001 -- | 'ACCESS_2_INDEX_READ_BIT_KHR' specifies read access to an index buffer -- in the 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_INDEX_READ_BIT_KHR                     = AccessFlagBits2KHR 0x00000002+pattern ACCESS_2_INDEX_READ_BIT_KHR                     = AccessFlagBits2KHR 0x0000000000000002 -- | 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR' specifies read access to a -- vertex buffer in the 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR' -- pipeline stage.-pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR          = AccessFlagBits2KHR 0x00000004+pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR          = AccessFlagBits2KHR 0x0000000000000004 -- | 'ACCESS_2_UNIFORM_READ_BIT_KHR' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer> -- in any shader pipeline stage.-pattern ACCESS_2_UNIFORM_READ_BIT_KHR                   = AccessFlagBits2KHR 0x00000008+pattern ACCESS_2_UNIFORM_READ_BIT_KHR                   = AccessFlagBits2KHR 0x0000000000000008 -- | 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR' specifies read access to an -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass input attachment> -- in the 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR' pipeline stage.-pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR          = AccessFlagBits2KHR 0x00000010+pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR          = AccessFlagBits2KHR 0x0000000000000010 -- | 'ACCESS_2_SHADER_READ_BIT_KHR' is equivalent to the logical OR of: -- -- -   VK_ACCESS_2_UNIFORM_READ_BIT_KHR@@ -5234,64 +5177,64 @@ -- -   VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR -- -- -   VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR-pattern ACCESS_2_SHADER_READ_BIT_KHR                    = AccessFlagBits2KHR 0x00000020+pattern ACCESS_2_SHADER_READ_BIT_KHR                    = AccessFlagBits2KHR 0x0000000000000020 -- | 'ACCESS_2_SHADER_WRITE_BIT_KHR' is equivalent to -- 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR'.-pattern ACCESS_2_SHADER_WRITE_BIT_KHR                   = AccessFlagBits2KHR 0x00000040+pattern ACCESS_2_SHADER_WRITE_BIT_KHR                   = AccessFlagBits2KHR 0x0000000000000040 -- | 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachment> -- (excluding -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>) -- in the 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline -- stage.-pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR          = AccessFlagBits2KHR 0x00000080+pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR          = AccessFlagBits2KHR 0x0000000000000080 -- | 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color or resolve attachment> -- in the 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline -- stage.-pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR         = AccessFlagBits2KHR 0x00000100+pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR         = AccessFlagBits2KHR 0x0000000000000100 -- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR' specifies read access -- to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment> -- in the 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' or -- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' pipeline stages.-pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR  = AccessFlagBits2KHR 0x00000200+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR  = AccessFlagBits2KHR 0x0000000000000200 -- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR' specifies write access -- to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment> -- in the 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' or -- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' pipeline stages.-pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = AccessFlagBits2KHR 0x00000400+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000000400 -- | 'ACCESS_2_TRANSFER_READ_BIT_KHR' specifies read access to an image or -- buffer in the 'PIPELINE_STAGE_2_COPY_BIT_KHR', -- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', or 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' -- pipeline stages.-pattern ACCESS_2_TRANSFER_READ_BIT_KHR                  = AccessFlagBits2KHR 0x00000800+pattern ACCESS_2_TRANSFER_READ_BIT_KHR                  = AccessFlagBits2KHR 0x0000000000000800 -- | 'ACCESS_2_TRANSFER_WRITE_BIT_KHR' specifies write access to an image or -- buffer in the 'PIPELINE_STAGE_2_COPY_BIT_KHR', -- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_CLEAR_BIT_KHR', or -- 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' pipeline stages.-pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR                 = AccessFlagBits2KHR 0x00001000+pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR                 = AccessFlagBits2KHR 0x0000000000001000 -- | 'ACCESS_2_HOST_READ_BIT_KHR' specifies read access to memory in the -- 'PIPELINE_STAGE_2_HOST_BIT_KHR' pipeline stage.-pattern ACCESS_2_HOST_READ_BIT_KHR                      = AccessFlagBits2KHR 0x00002000+pattern ACCESS_2_HOST_READ_BIT_KHR                      = AccessFlagBits2KHR 0x0000000000002000 -- | 'ACCESS_2_HOST_WRITE_BIT_KHR' specifies write access to memory in the -- 'PIPELINE_STAGE_2_HOST_BIT_KHR' pipeline stage.-pattern ACCESS_2_HOST_WRITE_BIT_KHR                     = AccessFlagBits2KHR 0x00004000+pattern ACCESS_2_HOST_WRITE_BIT_KHR                     = AccessFlagBits2KHR 0x0000000000004000 -- | 'ACCESS_2_MEMORY_READ_BIT_KHR' specifies all read accesses. It is always -- valid in any access mask, and is treated as equivalent to setting all -- @READ@ access flags that are valid where it is used.-pattern ACCESS_2_MEMORY_READ_BIT_KHR                    = AccessFlagBits2KHR 0x00008000+pattern ACCESS_2_MEMORY_READ_BIT_KHR                    = AccessFlagBits2KHR 0x0000000000008000 -- | 'ACCESS_2_MEMORY_WRITE_BIT_KHR' specifies all write accesses. It is -- always valid in any access mask, and is treated as equivalent to setting -- all @WRITE@ access flags that are valid where it is used.-pattern ACCESS_2_MEMORY_WRITE_BIT_KHR                   = AccessFlagBits2KHR 0x00010000+pattern ACCESS_2_MEMORY_WRITE_BIT_KHR                   = AccessFlagBits2KHR 0x0000000000010000 -- | 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer> -- or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image> -- in any shader pipeline stage.-pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR            = AccessFlagBits2KHR 0x100000000+pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR            = AccessFlagBits2KHR 0x0000000100000000 -- | 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,@@ -5299,7 +5242,7 @@ -- or -- <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_READ_BIT_KHR            = AccessFlagBits2KHR 0x200000000+pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR            = AccessFlagBits2KHR 0x0000000200000000 -- | 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,@@ -5307,7 +5250,7 @@ -- or -- <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 0x400000000+pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR           = AccessFlagBits2KHR 0x0000000400000000 -- | '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>,@@ -5315,48 +5258,48 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>, -- in the 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline -- stage.-pattern ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits2KHR 0x00080000+pattern ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits2KHR 0x0000000000080000 -- | 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- in the 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' pipeline -- stage.-pattern ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT      = AccessFlagBits2KHR 0x01000000+pattern ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT      = AccessFlagBits2KHR 0x0000000001000000 -- | 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access -- to an acceleration structure in the -- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' pipeline stage.-pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR   = AccessFlagBits2KHR 0x00400000+pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR   = AccessFlagBits2KHR 0x0000000000400000 -- | 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to -- an acceleration structure in the -- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or -- 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' pipeline stages.-pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR    = AccessFlagBits2KHR 0x00200000+pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR    = AccessFlagBits2KHR 0x0000000000200000 -- No documentation found for Nested "VkAccessFlagBits2KHR" "VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"-pattern ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x00800000+pattern ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000800000 -- | 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the -- target command buffer in the -- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' pipeline stage.-pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV        = AccessFlagBits2KHR 0x00040000+pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV        = AccessFlagBits2KHR 0x0000000000040000 -- | 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from -- 'Vulkan.Core10.Handles.Buffer' inputs to -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV' -- in the 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' pipeline stage.-pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV         = AccessFlagBits2KHR 0x00020000+pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV         = AccessFlagBits2KHR 0x0000000000020000 -- | 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a -- predicate in the 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- pipeline stage.-pattern ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT     = AccessFlagBits2KHR 0x00100000+pattern ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT     = AccessFlagBits2KHR 0x0000000000100000 -- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write -- access to a transform feedback counter buffer in the -- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits2KHR 0x08000000+pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits2KHR 0x0000000008000000 -- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' specifies read access -- to a transform feedback counter buffer in the -- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits2KHR 0x04000000+pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits2KHR 0x0000000004000000 -- | 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' specifies write access to a -- transform feedback buffer in the -- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT       = AccessFlagBits2KHR 0x02000000+pattern ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT       = AccessFlagBits2KHR 0x0000000002000000  conNameAccessFlagBits2KHR :: String conNameAccessFlagBits2KHR = "AccessFlagBits2KHR"@@ -5412,6 +5355,8 @@     enumReadPrec enumPrefixAccessFlagBits2KHR showTableAccessFlagBits2KHR conNameAccessFlagBits2KHR AccessFlagBits2KHR  +type PipelineStageFlags2KHR = PipelineStageFlagBits2KHR+ -- | VkPipelineStageFlagBits2KHR - Pipeline stage flags for -- VkPipelineStageFlags2KHR --@@ -5434,65 +5379,65 @@ -- = See Also -- -- No cross-references are available-newtype PipelineStageFlagBits2KHR = PipelineStageFlagBits2KHR Flags+newtype PipelineStageFlagBits2KHR = PipelineStageFlagBits2KHR Flags64   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'PIPELINE_STAGE_2_NONE_KHR' specifies no stages of execution.-pattern PIPELINE_STAGE_2_NONE_KHR                               = PipelineStageFlagBits2KHR 0x00000000+pattern PIPELINE_STAGE_2_NONE_KHR                               = PipelineStageFlagBits2KHR 0x0000000000000000 -- | 'PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR' is equivalent to -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' with 'AccessFlags2KHR' set to -- @0@ when specified in the second synchronization scope, but equivalent -- to 'PIPELINE_STAGE_2_NONE_KHR' in the first scope.-pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR                    = PipelineStageFlagBits2KHR 0x00000001+pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR                    = PipelineStageFlagBits2KHR 0x0000000000000001 -- | 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR' specifies the stage of the -- pipeline where indirect command parameters are consumed. This stage also -- includes reading commands written by -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.-pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR                  = PipelineStageFlagBits2KHR 0x00000002+pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR                  = PipelineStageFlagBits2KHR 0x0000000000000002 -- | 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR' is equivalent to the logical OR -- of: -- -- -   'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' -- -- -   'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR'-pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR                   = PipelineStageFlagBits2KHR 0x00000004+pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR                   = PipelineStageFlagBits2KHR 0x0000000000000004 -- | 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR' specifies the vertex shader -- stage.-pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR                  = PipelineStageFlagBits2KHR 0x00000008+pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR                  = PipelineStageFlagBits2KHR 0x0000000000000008 -- | 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' specifies the -- tessellation control shader stage.-pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR    = PipelineStageFlagBits2KHR 0x00000010+pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR    = PipelineStageFlagBits2KHR 0x0000000000000010 -- | 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR' specifies the -- tessellation evaluation shader stage.-pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x00000020+pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000020 -- | 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR' specifies the geometry shader -- stage.-pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR                = PipelineStageFlagBits2KHR 0x00000040+pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR                = PipelineStageFlagBits2KHR 0x0000000000000040 -- | 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR' specifies the fragment shader -- stage.-pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR                = PipelineStageFlagBits2KHR 0x00000080+pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR                = PipelineStageFlagBits2KHR 0x0000000000000080 -- | 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' specifies the stage of -- the pipeline where early fragment tests (depth and stencil tests before -- fragment shading) are performed. This stage also includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations> -- for framebuffer attachments with a depth\/stencil format.-pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR           = PipelineStageFlagBits2KHR 0x00000100+pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR           = PipelineStageFlagBits2KHR 0x0000000000000100 -- | 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' specifies the stage of -- the pipeline where late fragment tests (depth and stencil tests after -- fragment shading) are performed. This stage also includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations> -- for framebuffer attachments with a depth\/stencil format.-pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR            = PipelineStageFlagBits2KHR 0x00000200+pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR            = PipelineStageFlagBits2KHR 0x0000000000000200 -- | 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' specifies the stage -- of the pipeline after blending where the final color values are output -- from the pipeline. This stage also includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations> -- and multisample resolve operations for framebuffer attachments with a -- color or depth\/stencil format.-pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR        = PipelineStageFlagBits2KHR 0x00000400+pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR        = PipelineStageFlagBits2KHR 0x0000000000000400 -- | 'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR' specifies the compute shader -- stage.-pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR                 = PipelineStageFlagBits2KHR 0x00000800+pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR                 = PipelineStageFlagBits2KHR 0x0000000000000800 -- | 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR' is equivalent to specifying all -- of: --@@ -5503,16 +5448,16 @@ -- -   'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' -- -- -   'PIPELINE_STAGE_2_CLEAR_BIT_KHR'-pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR                   = PipelineStageFlagBits2KHR 0x00001000+pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR                   = PipelineStageFlagBits2KHR 0x0000000000001000 -- | 'PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR' is equivalent to -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' with 'AccessFlags2KHR' set to -- @0@ when specified in the first synchronization scope, but equivalent to -- 'PIPELINE_STAGE_2_NONE_KHR' in the second scope.-pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR                 = PipelineStageFlagBits2KHR 0x00002000+pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR                 = PipelineStageFlagBits2KHR 0x0000000000002000 -- | 'PIPELINE_STAGE_2_HOST_BIT_KHR' specifies a pseudo-stage indicating -- execution on the host of reads\/writes of device memory. This stage is -- not invoked by any commands recorded in a command buffer.-pattern PIPELINE_STAGE_2_HOST_BIT_KHR                           = PipelineStageFlagBits2KHR 0x00004000+pattern PIPELINE_STAGE_2_HOST_BIT_KHR                           = PipelineStageFlagBits2KHR 0x0000000000004000 -- | 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR' specifies the execution of all -- graphics pipeline stages, and is equivalent to the logical OR of: --@@ -5547,31 +5492,31 @@ -- -   'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- -   'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'-pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR                   = PipelineStageFlagBits2KHR 0x00008000+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.-pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR                   = PipelineStageFlagBits2KHR 0x00010000+pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR                   = PipelineStageFlagBits2KHR 0x0000000000010000 -- | 'PIPELINE_STAGE_2_COPY_BIT_KHR' specifies the execution of all -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>, -- including 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults'.-pattern PIPELINE_STAGE_2_COPY_BIT_KHR                           = PipelineStageFlagBits2KHR 0x100000000+pattern PIPELINE_STAGE_2_COPY_BIT_KHR                           = PipelineStageFlagBits2KHR 0x0000000100000000 -- | 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' specifies the execution of -- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage'.-pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR                        = PipelineStageFlagBits2KHR 0x200000000+pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR                        = PipelineStageFlagBits2KHR 0x0000000200000000 -- | 'PIPELINE_STAGE_2_BLIT_BIT_KHR' specifies the execution of -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'.-pattern PIPELINE_STAGE_2_BLIT_BIT_KHR                           = PipelineStageFlagBits2KHR 0x400000000+pattern PIPELINE_STAGE_2_BLIT_BIT_KHR                           = PipelineStageFlagBits2KHR 0x0000000400000000 -- | 'PIPELINE_STAGE_2_CLEAR_BIT_KHR' specifies the execution of -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>, -- with the exception of -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.-pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR                          = PipelineStageFlagBits2KHR 0x800000000+pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR                          = PipelineStageFlagBits2KHR 0x0000000800000000 -- | 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' specifies the stage of the -- pipeline where index buffers are consumed.-pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR                    = PipelineStageFlagBits2KHR 0x1000000000+pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR                    = PipelineStageFlagBits2KHR 0x0000001000000000 -- | 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR' specifies the stage of -- the pipeline where vertex buffers are consumed.-pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR         = PipelineStageFlagBits2KHR 0x2000000000+pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR         = PipelineStageFlagBits2KHR 0x0000002000000000 -- | 'PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR' is equivalent to -- specifying all supported stages from: --@@ -5586,22 +5531,22 @@ -- -   'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' -- -- -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'-pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR      = PipelineStageFlagBits2KHR 0x4000000000+pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR      = PipelineStageFlagBits2KHR 0x0000004000000000 -- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' specifies the mesh shader stage.-pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                     = PipelineStageFlagBits2KHR 0x00100000+pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                     = PipelineStageFlagBits2KHR 0x0000000000100000 -- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' specifies the task shader stage.-pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                     = PipelineStageFlagBits2KHR 0x00080000+pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                     = PipelineStageFlagBits2KHR 0x0000000000080000 -- | 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' specifies the stage -- of the pipeline where the fragment density map is read to -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.-pattern PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT       = PipelineStageFlagBits2KHR 0x00800000+pattern PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT       = PipelineStageFlagBits2KHR 0x0000000000800000 -- | 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' specifies the execution of -- the ray tracing shader stages.-pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR             = PipelineStageFlagBits2KHR 0x00200000+pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR             = PipelineStageFlagBits2KHR 0x0000000000200000 -- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the -- execution of -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure acceleration structure commands>.-pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR   = PipelineStageFlagBits2KHR 0x02000000+pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR   = PipelineStageFlagBits2KHR 0x0000000002000000 -- | 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies -- the stage of the pipeline where the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>@@ -5609,19 +5554,19 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-attachment shading rate image> -- is read to determine the fragment shading rate for portions of a -- rasterized primitive.-pattern PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits2KHR 0x00400000+pattern PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000400000 -- | 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' specifies the stage of the -- pipeline where device-side generation of commands via -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV' -- is handled.-pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV              = PipelineStageFlagBits2KHR 0x00020000+pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV              = PipelineStageFlagBits2KHR 0x0000000000020000 -- | 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' specifies the stage of -- the pipeline where the predicate of conditional rendering is consumed.-pattern PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT          = PipelineStageFlagBits2KHR 0x00040000+pattern PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT          = PipelineStageFlagBits2KHR 0x0000000000040000 -- | 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' specifies the stage of the -- pipeline where vertex attribute output values are written to the -- transform feedback buffers.-pattern PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT             = PipelineStageFlagBits2KHR 0x01000000+pattern PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT             = PipelineStageFlagBits2KHR 0x0000000001000000  conNamePipelineStageFlagBits2KHR :: String conNamePipelineStageFlagBits2KHR = "PipelineStageFlagBits2KHR"
src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot view
@@ -23,8 +23,6 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ -----     -   Requires @VK_KHR_create_renderpass2@--- -- [__Contact__] -- --     -   Tobias Hector@@ -431,6 +429,7 @@                                                   , SemaphoreSubmitInfoKHR                                                   , SubmitInfo2KHR                                                   , PipelineStageFlags2KHR+                                                  , PipelineStageFlagBits2KHR                                                   ) where  import Vulkan.CStruct (FromCStruct)@@ -522,5 +521,7 @@ instance (Extendss SubmitInfo2KHR es, PeekChain es) => FromCStruct (SubmitInfo2KHR es)  -data PipelineStageFlags2KHR+type PipelineStageFlags2KHR = PipelineStageFlagBits2KHR++data PipelineStageFlagBits2KHR 
src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs view
@@ -184,9 +184,9 @@ -- -- 2) What type of payload the new synchronization primitive has? ----- __RESOLVED__: A 64-bit unsigned integer that can only be set to--- monotonically increasing values by signal operations and is not changed--- by wait operations.+-- __RESOLVED__: A 64-bit unsigned integer that can only be set to strictly+-- increasing values by signal operations and is not changed by wait+-- operations. -- -- 3) Does the new synchronization primitive have the same -- signal-before-wait requirement as the existing semaphores do?
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -711,6 +711,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -863,7 +873,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -1109,6 +1119,13 @@ --     then the @blendEnable@ member of the corresponding element of the --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-04740# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     neither the @@ nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04007# All vertex input --     bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -339,6 +339,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDrawMeshTasksNV-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDrawMeshTasksNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -489,7 +499,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDrawMeshTasksNV-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -733,6 +743,13 @@ --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --+-- -   #VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     neither the @@ nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be --     less than or equal to --     'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@@@ -826,6 +843,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -978,7 +1005,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -1225,6 +1252,13 @@ --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     neither the @@ nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is --     non-sparse then it /must/ be bound completely and contiguously to a --     single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -1362,6 +1396,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -1514,7 +1558,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a@@ -1760,6 +1804,13 @@ --     then the @blendEnable@ member of the corresponding element of the --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     neither the @@ nor the @@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is --     non-sparse then it /must/ be bound completely and contiguously to a
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -1617,6 +1617,16 @@ --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- -   #VUID-vkCmdTraceRaysNV-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- -   #VUID-vkCmdTraceRaysNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic --     operations as a result of this command, then the image view’s@@ -1767,7 +1777,7 @@ --     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ --     as a result of this command, then the @Type@ of the @Texel@ operand --     of that instruction /must/ have at least as many components as the---     image view’s format.+--     buffer view’s format. -- -- -   #VUID-vkCmdTraceRaysNV-SampledType-04470# If a --     'Vulkan.Core10.Handles.ImageView' with a
+ src/Vulkan/Extensions/VK_QNX_screen_surface.hs view
@@ -0,0 +1,423 @@+{-# language CPP #-}+-- | = Name+--+-- VK_QNX_screen_surface - instance extension+--+-- == VK_QNX_screen_surface+--+-- [__Name String__]+--     @VK_QNX_screen_surface@+--+-- [__Extension Type__]+--     Instance extension+--+-- [__Registered Extension Number__]+--     379+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_surface@+--+-- [__Contact__]+--+--     -   Mike Gorchak+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_QNX_screen_surface:%20&body=@mgorchak-blackberry%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-01-11+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Mike Gorchak, BlackBerry Limited+--+-- == Description+--+-- The @VK_QNX_screen_surface@ extension is an instance extension. It+-- provides a mechanism to create a 'Vulkan.Extensions.Handles.SurfaceKHR'+-- object (defined by the @VK_KHR_surface@ extension) that refers to a QNX+-- Screen @window@, as well as a query to determine support for rendering+-- to a QNX Screen compositor.+--+-- == New Commands+--+-- -   'createScreenSurfaceQNX'+--+-- -   'getPhysicalDeviceScreenPresentationSupportQNX'+--+-- == New Structures+--+-- -   'ScreenSurfaceCreateInfoQNX'+--+-- == New Bitmasks+--+-- -   'ScreenSurfaceCreateFlagsQNX'+--+-- == New Enum Constants+--+-- -   'QNX_SCREEN_SURFACE_EXTENSION_NAME'+--+-- -   'QNX_SCREEN_SURFACE_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX'+--+-- == Version History+--+-- -   Revision 1, 2021-01-11 (Mike Gorchak)+--+--     -   Initial draft.+--+-- = See Also+--+-- 'ScreenSurfaceCreateFlagsQNX', 'ScreenSurfaceCreateInfoQNX',+-- 'createScreenSurfaceQNX',+-- 'getPhysicalDeviceScreenPresentationSupportQNX'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_QNX_screen_surface  ( createScreenSurfaceQNX+                                                , getPhysicalDeviceScreenPresentationSupportQNX+                                                , ScreenSurfaceCreateInfoQNX(..)+                                                , ScreenSurfaceCreateFlagsQNX(..)+                                                , QNX_SCREEN_SURFACE_SPEC_VERSION+                                                , pattern QNX_SCREEN_SURFACE_SPEC_VERSION+                                                , QNX_SCREEN_SURFACE_EXTENSION_NAME+                                                , pattern QNX_SCREEN_SURFACE_EXTENSION_NAME+                                                , Screen_window+                                                , Screen_context+                                                , SurfaceKHR(..)+                                                ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showString)+import Numeric (showHex)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+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 GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Core10.Handles (Instance)+import Vulkan.Core10.Handles (Instance(..))+import Vulkan.Dynamic (InstanceCmds(pVkCreateScreenSurfaceQNX))+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceScreenPresentationSupportQNX))+import Vulkan.Core10.Handles (Instance_T)+import Vulkan.Core10.Handles (PhysicalDevice)+import Vulkan.Core10.Handles (PhysicalDevice(..))+import Vulkan.Core10.Handles (PhysicalDevice_T)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Extensions.Handles (SurfaceKHR)+import Vulkan.Extensions.Handles (SurfaceKHR(..))+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (SurfaceKHR(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCreateScreenSurfaceQNX+  :: FunPtr (Ptr Instance_T -> Ptr ScreenSurfaceCreateInfoQNX -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result) -> Ptr Instance_T -> Ptr ScreenSurfaceCreateInfoQNX -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result++-- | vkCreateScreenSurfaceQNX - Create a+-- 'Vulkan.Extensions.Handles.SurfaceKHR' object for a QNX Screen window+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCreateScreenSurfaceQNX-instance-parameter# @instance@ /must/+--     be a valid 'Vulkan.Core10.Handles.Instance' handle+--+-- -   #VUID-vkCreateScreenSurfaceQNX-pCreateInfo-parameter# @pCreateInfo@+--     /must/ be a valid pointer to a valid 'ScreenSurfaceCreateInfoQNX'+--     structure+--+-- -   #VUID-vkCreateScreenSurfaceQNX-pAllocator-parameter# If @pAllocator@+--     is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   #VUID-vkCreateScreenSurfaceQNX-pSurface-parameter# @pSurface@ /must/+--     be a valid pointer to a 'Vulkan.Extensions.Handles.SurfaceKHR'+--     handle+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Instance', 'ScreenSurfaceCreateInfoQNX',+-- 'Vulkan.Extensions.Handles.SurfaceKHR'+createScreenSurfaceQNX :: forall io+                        . (MonadIO io)+                       => -- | @instance@ is the instance to associate the surface with.+                          Instance+                       -> -- | @pCreateInfo@ is a pointer to a 'ScreenSurfaceCreateInfoQNX' structure+                          -- containing parameters affecting the creation of the surface object.+                          ScreenSurfaceCreateInfoQNX+                       -> -- | @pAllocator@ is the allocator used for host memory allocated for the+                          -- surface object when there is no more specific allocator available (see+                          -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                          ("allocator" ::: Maybe AllocationCallbacks)+                       -> io (SurfaceKHR)+createScreenSurfaceQNX instance' createInfo allocator = liftIO . evalContT $ do+  let vkCreateScreenSurfaceQNXPtr = pVkCreateScreenSurfaceQNX (instanceCmds (instance' :: Instance))+  lift $ unless (vkCreateScreenSurfaceQNXPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateScreenSurfaceQNX is null" Nothing Nothing+  let vkCreateScreenSurfaceQNX' = mkVkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNXPtr+  pCreateInfo <- ContT $ withCStruct (createInfo)+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free+  r <- lift $ traceAroundEvent "vkCreateScreenSurfaceQNX" (vkCreateScreenSurfaceQNX' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pSurface <- lift $ peek @SurfaceKHR pPSurface+  pure $ (pSurface)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetPhysicalDeviceScreenPresentationSupportQNX+  :: FunPtr (Ptr PhysicalDevice_T -> Word32 -> Ptr Screen_window -> IO Bool32) -> Ptr PhysicalDevice_T -> Word32 -> Ptr Screen_window -> IO Bool32++-- | vkGetPhysicalDeviceScreenPresentationSupportQNX - Query physical device+-- for presentation to QNX Screen+--+-- = Description+--+-- This platform-specific function /can/ be called prior to creating a+-- surface.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.PhysicalDevice'+getPhysicalDeviceScreenPresentationSupportQNX :: forall io+                                               . (MonadIO io)+                                              => -- | @physicalDevice@ is the physical device.+                                                 --+                                                 -- #VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-physicalDevice-parameter#+                                                 -- @physicalDevice@ /must/ be a valid+                                                 -- 'Vulkan.Core10.Handles.PhysicalDevice' handle+                                                 PhysicalDevice+                                              -> -- | @queueFamilyIndex@ is the queue family index.+                                                 --+                                                 -- #VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-queueFamilyIndex-04743#+                                                 -- @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+                                                 -- returned by+                                                 -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties'+                                                 -- for the given @physicalDevice@+                                                 ("queueFamilyIndex" ::: Word32)+                                              -> -- | @window@ is the QNX Screen @window@ object.+                                                 --+                                                 -- #VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-window-parameter#+                                                 -- @window@ /must/ be a valid pointer to a 'Screen_window' value+                                                 (Ptr Screen_window)+                                              -> io (Bool)+getPhysicalDeviceScreenPresentationSupportQNX physicalDevice queueFamilyIndex window = liftIO $ do+  let vkGetPhysicalDeviceScreenPresentationSupportQNXPtr = pVkGetPhysicalDeviceScreenPresentationSupportQNX (instanceCmds (physicalDevice :: PhysicalDevice))+  unless (vkGetPhysicalDeviceScreenPresentationSupportQNXPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceScreenPresentationSupportQNX is null" Nothing Nothing+  let vkGetPhysicalDeviceScreenPresentationSupportQNX' = mkVkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNXPtr+  r <- traceAroundEvent "vkGetPhysicalDeviceScreenPresentationSupportQNX" (vkGetPhysicalDeviceScreenPresentationSupportQNX' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (window))+  pure $ ((bool32ToBool r))+++-- | VkScreenSurfaceCreateInfoQNX - Structure specifying parameters of a+-- newly created QNX Screen surface object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'ScreenSurfaceCreateFlagsQNX',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createScreenSurfaceQNX'+data ScreenSurfaceCreateInfoQNX = ScreenSurfaceCreateInfoQNX+  { -- | @flags@ is reserved for future use.+    --+    -- #VUID-VkScreenSurfaceCreateInfoQNX-flags-zerobitmask# @flags@ /must/ be+    -- @0@+    flags :: ScreenSurfaceCreateFlagsQNX+  , -- | @context@ and @window@ are QNX Screen @context@ and @window@ to+    -- associate the surface with.+    --+    -- #VUID-VkScreenSurfaceCreateInfoQNX-context-04741# @context@ /must/ point+    -- to a valid QNX Screen @struct@ _screen_context+    context :: Ptr Screen_context+  , -- | #VUID-VkScreenSurfaceCreateInfoQNX-window-04742# @window@ /must/ point+    -- to a valid QNX Screen @struct@ _screen_window+    window :: Ptr Screen_window+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ScreenSurfaceCreateInfoQNX)+#endif+deriving instance Show ScreenSurfaceCreateInfoQNX++instance ToCStruct ScreenSurfaceCreateInfoQNX where+  withCStruct x f = allocaBytesAligned 40 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ScreenSurfaceCreateInfoQNX{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ScreenSurfaceCreateFlagsQNX)) (flags)+    poke ((p `plusPtr` 24 :: Ptr (Ptr Screen_context))) (context)+    poke ((p `plusPtr` 32 :: Ptr (Ptr Screen_window))) (window)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 24 :: Ptr (Ptr Screen_context))) (zero)+    poke ((p `plusPtr` 32 :: Ptr (Ptr Screen_window))) (zero)+    f++instance FromCStruct ScreenSurfaceCreateInfoQNX where+  peekCStruct p = do+    flags <- peek @ScreenSurfaceCreateFlagsQNX ((p `plusPtr` 16 :: Ptr ScreenSurfaceCreateFlagsQNX))+    context <- peek @(Ptr Screen_context) ((p `plusPtr` 24 :: Ptr (Ptr Screen_context)))+    window <- peek @(Ptr Screen_window) ((p `plusPtr` 32 :: Ptr (Ptr Screen_window)))+    pure $ ScreenSurfaceCreateInfoQNX+             flags context window++instance Storable ScreenSurfaceCreateInfoQNX where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ScreenSurfaceCreateInfoQNX where+  zero = ScreenSurfaceCreateInfoQNX+           zero+           zero+           zero+++-- | VkScreenSurfaceCreateFlagsQNX - Reserved for future use+--+-- = Description+--+-- 'ScreenSurfaceCreateFlagsQNX' is a bitmask type for setting a mask, but+-- is currently reserved for future use.+--+-- = See Also+--+-- 'ScreenSurfaceCreateInfoQNX'+newtype ScreenSurfaceCreateFlagsQNX = ScreenSurfaceCreateFlagsQNX Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++++conNameScreenSurfaceCreateFlagsQNX :: String+conNameScreenSurfaceCreateFlagsQNX = "ScreenSurfaceCreateFlagsQNX"++enumPrefixScreenSurfaceCreateFlagsQNX :: String+enumPrefixScreenSurfaceCreateFlagsQNX = ""++showTableScreenSurfaceCreateFlagsQNX :: [(ScreenSurfaceCreateFlagsQNX, String)]+showTableScreenSurfaceCreateFlagsQNX = []++instance Show ScreenSurfaceCreateFlagsQNX where+  showsPrec = enumShowsPrec enumPrefixScreenSurfaceCreateFlagsQNX+                            showTableScreenSurfaceCreateFlagsQNX+                            conNameScreenSurfaceCreateFlagsQNX+                            (\(ScreenSurfaceCreateFlagsQNX x) -> x)+                            (\x -> showString "0x" . showHex x)++instance Read ScreenSurfaceCreateFlagsQNX where+  readPrec = enumReadPrec enumPrefixScreenSurfaceCreateFlagsQNX+                          showTableScreenSurfaceCreateFlagsQNX+                          conNameScreenSurfaceCreateFlagsQNX+                          ScreenSurfaceCreateFlagsQNX+++type QNX_SCREEN_SURFACE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_QNX_SCREEN_SURFACE_SPEC_VERSION"+pattern QNX_SCREEN_SURFACE_SPEC_VERSION :: forall a . Integral a => a+pattern QNX_SCREEN_SURFACE_SPEC_VERSION = 1+++type QNX_SCREEN_SURFACE_EXTENSION_NAME = "VK_QNX_screen_surface"++-- No documentation found for TopLevel "VK_QNX_SCREEN_SURFACE_EXTENSION_NAME"+pattern QNX_SCREEN_SURFACE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern QNX_SCREEN_SURFACE_EXTENSION_NAME = "VK_QNX_screen_surface"+++data Screen_window+++data Screen_context+
+ src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot view
@@ -0,0 +1,111 @@+{-# language CPP #-}+-- | = Name+--+-- VK_QNX_screen_surface - instance extension+--+-- == VK_QNX_screen_surface+--+-- [__Name String__]+--     @VK_QNX_screen_surface@+--+-- [__Extension Type__]+--     Instance extension+--+-- [__Registered Extension Number__]+--     379+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_surface@+--+-- [__Contact__]+--+--     -   Mike Gorchak+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_QNX_screen_surface:%20&body=@mgorchak-blackberry%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-01-11+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Mike Gorchak, BlackBerry Limited+--+-- == Description+--+-- The @VK_QNX_screen_surface@ extension is an instance extension. It+-- provides a mechanism to create a 'Vulkan.Extensions.Handles.SurfaceKHR'+-- object (defined by the @VK_KHR_surface@ extension) that refers to a QNX+-- Screen @window@, as well as a query to determine support for rendering+-- to a QNX Screen compositor.+--+-- == New Commands+--+-- -   'createScreenSurfaceQNX'+--+-- -   'getPhysicalDeviceScreenPresentationSupportQNX'+--+-- == New Structures+--+-- -   'ScreenSurfaceCreateInfoQNX'+--+-- == New Bitmasks+--+-- -   'ScreenSurfaceCreateFlagsQNX'+--+-- == New Enum Constants+--+-- -   'QNX_SCREEN_SURFACE_EXTENSION_NAME'+--+-- -   'QNX_SCREEN_SURFACE_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX'+--+-- == Version History+--+-- -   Revision 1, 2021-01-11 (Mike Gorchak)+--+--     -   Initial draft.+--+-- = See Also+--+-- 'ScreenSurfaceCreateFlagsQNX', 'ScreenSurfaceCreateInfoQNX',+-- 'createScreenSurfaceQNX',+-- 'getPhysicalDeviceScreenPresentationSupportQNX'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_QNX_screen_surface  ( ScreenSurfaceCreateInfoQNX+                                                , Screen_window+                                                ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data ScreenSurfaceCreateInfoQNX++instance ToCStruct ScreenSurfaceCreateInfoQNX+instance Show ScreenSurfaceCreateInfoQNX++instance FromCStruct ScreenSurfaceCreateInfoQNX+++data Screen_window+
src/Vulkan/SPIRVRequirements.hs view
@@ -14,6 +14,8 @@ import Data.ByteString (ByteString) import Vulkan.Core10.Handles (Instance) import Vulkan.Core10.Handles (PhysicalDevice)+import Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures)+import Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures(..)) import Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT) import Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT(..)) import Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)@@ -30,6 +32,8 @@ import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT(..)) import Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR(..))+import Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures)+import Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures(..)) import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR(..)) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)@@ -38,6 +42,8 @@ import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT(..)) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(..))+import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)+import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures(..)) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(..)) import Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)@@ -50,6 +56,8 @@ import Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV(..)) import Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT) import Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT(..))+import Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)+import Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures(..)) import Vulkan.Core12 (PhysicalDeviceVulkan11Features) import Vulkan.Core12 (PhysicalDeviceVulkan11Features(..)) import Vulkan.Core12 (PhysicalDeviceVulkan11Properties)@@ -616,6 +624,17 @@                              , deviceExtensionMinVersion = 0                              }     ]+  "SPV_EXT_shader_atomic_float_add" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]   _ -> ([], [])  spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -881,73 +900,38 @@                            }     ]   "DrawParameters" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "shaderDrawParameters"                            , checkFeature  = shaderDrawParameters :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { shaderDrawParameters = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0+    , RequireDeviceVersion $ MAKE_VERSION 1 2 0     ]   "MultiView" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 1 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]+    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "multiview"                            , checkFeature  = multiview :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { multiview = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MULTIVIEW_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }+    , RequireDeviceVersion $ MAKE_VERSION 1 2 0     ]   "DeviceGroup" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]   "VariablePointersStorageBuffer" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 1 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]+    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]     [ RequireDeviceFeature       { featureName   = "variablePointersStorageBuffer"       , checkFeature  = variablePointersStorageBuffer :: PhysicalDeviceVulkan11Features -> Bool       , enableFeature = \f -> f { variablePointersStorageBuffer = True } :: PhysicalDeviceVulkan11Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_VARIABLE_POINTERS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }+    , RequireDeviceVersion $ MAKE_VERSION 1 2 0     ]   "VariablePointers" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 1 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]+    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "variablePointers"                            , checkFeature  = variablePointers :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { variablePointers = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_VARIABLE_POINTERS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }+    , RequireDeviceVersion $ MAKE_VERSION 1 2 0     ]   "ShaderClockKHR" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing@@ -1074,90 +1058,38 @@                              }     ]   "StorageBuffer16BitAccess" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 1 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]+    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]     [ RequireDeviceFeature       { featureName   = "storageBuffer16BitAccess"       , checkFeature  = storageBuffer16BitAccess :: PhysicalDeviceVulkan11Features -> Bool       , enableFeature = \f -> f { storageBuffer16BitAccess = True } :: PhysicalDeviceVulkan11Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_16BIT_STORAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }+    , RequireDeviceVersion $ MAKE_VERSION 1 2 0     ]   "UniformAndStorageBuffer16BitAccess" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 1 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]+    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]     [ RequireDeviceFeature       { featureName   = "uniformAndStorageBuffer16BitAccess"       , checkFeature  = uniformAndStorageBuffer16BitAccess :: PhysicalDeviceVulkan11Features -> Bool       , enableFeature = \f -> f { uniformAndStorageBuffer16BitAccess = True } :: PhysicalDeviceVulkan11Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_16BIT_STORAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }+    , RequireDeviceVersion $ MAKE_VERSION 1 2 0     ]   "StoragePushConstant16" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 1 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]+    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "storagePushConstant16"                            , checkFeature  = storagePushConstant16 :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { storagePushConstant16 = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_16BIT_STORAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }+    , RequireDeviceVersion $ MAKE_VERSION 1 2 0     ]   "StorageInputOutput16" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 1 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]+    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "storageInputOutput16"                            , checkFeature  = storageInputOutput16 :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { storageInputOutput16 = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_16BIT_STORAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }+    , RequireDeviceVersion $ MAKE_VERSION 1 2 0     ]   "GroupNonUniform" -> (,)     [RequireInstanceVersion $ MAKE_VERSION 1 1 0]
src/Vulkan/Version.hs view
@@ -15,11 +15,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 170+pattern HEADER_VERSION = 174   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 170+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 174   pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.10+version:        3.10.1 synopsis:       Bindings to the Vulkan graphics API. category:       Graphics homepage:       https://github.com/expipiplus1/vulkan#readme@@ -345,6 +345,8 @@       Vulkan.Extensions.VK_EXT_validation_flags       Vulkan.Extensions.VK_EXT_vertex_attribute_divisor       Vulkan.Extensions.VK_EXT_ycbcr_image_arrays+      Vulkan.Extensions.VK_FUCHSIA_external_memory+      Vulkan.Extensions.VK_FUCHSIA_external_semaphore       Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface       Vulkan.Extensions.VK_GGP_frame_token       Vulkan.Extensions.VK_GGP_stream_descriptor_surface@@ -478,6 +480,7 @@       Vulkan.Extensions.VK_QCOM_render_pass_store_ops       Vulkan.Extensions.VK_QCOM_render_pass_transform       Vulkan.Extensions.VK_QCOM_rotated_copy_commands+      Vulkan.Extensions.VK_QNX_screen_surface       Vulkan.Extensions.VK_VALVE_mutable_descriptor_type       Vulkan.NamedType       Vulkan.SPIRVRequirements