packages feed

vulkan 3.9 → 3.9.1

raw patch · 53 files changed

+1367/−305 lines, 53 files

Files

changelog.md view
@@ -2,6 +2,11 @@  ## WIP +## [3.9.1] - 2021-02-06+- Bump API version to v1.2.169+- Add `COMPLETE` pragma to `MAKE_VERSION` pattern+  https://github.com/expipiplus1/vulkan/issues/256+ ## [3.10] - 2021-01-09 - Make zero instance for `TransformMatrixKHR` return identity matrix. See   https://github.com/expipiplus1/vulkan/issues/240
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.9"+version: "3.9.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
@@ -464,7 +464,9 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendAttachmentState)@@ -834,8 +836,10 @@   Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = ()   Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = ()+  Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceRobustness2FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceImageRobustnessFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()@@ -963,8 +967,10 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceCustomBorderColorFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageRobustnessFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()@@ -1441,9 +1447,11 @@   STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> go @CommandBufferInheritanceRenderPassTransformInfoQCOM   STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV -> go @PhysicalDeviceDiagnosticsConfigFeaturesNV   STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV -> go @DeviceDiagnosticsConfigCreateInfoNV+  STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR -> go @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT -> go @PhysicalDeviceRobustness2FeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT -> go @PhysicalDeviceRobustness2PropertiesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> go @PhysicalDeviceImageRobustnessFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR -> go @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR -> go @PhysicalDevicePortabilitySubsetFeaturesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> go @PhysicalDevicePortabilitySubsetPropertiesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -> go @PhysicalDevice4444FormatsFeaturesEXT@@ -1758,9 +1766,11 @@ {-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-} {-# complete (::&) :: PhysicalDeviceDiagnosticsConfigFeaturesNV #-} {-# complete (::&) :: DeviceDiagnosticsConfigCreateInfoNV #-}+{-# complete (::&) :: PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR #-} {-# complete (::&) :: PhysicalDeviceRobustness2FeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceRobustness2PropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceImageRobustnessFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR #-} {-# complete (::&) :: PhysicalDevicePortabilitySubsetFeaturesKHR #-} {-# complete (::&) :: PhysicalDevicePortabilitySubsetPropertiesKHR #-} {-# complete (::&) :: PhysicalDevice4444FormatsFeaturesEXT #-}
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -2091,6 +2091,16 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --+-- -   #VUID-vkCmdDraw-blendEnable-04727# If rasterization is not disabled+--     in the bound graphics pipeline, then for each color attachment in+--     the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- -   #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@@ -2614,6 +2624,16 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --+-- -   #VUID-vkCmdDrawIndexed-blendEnable-04727# If rasterization is not+--     disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- -   #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@@ -3131,6 +3151,16 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --+-- -   #VUID-vkCmdDrawIndirect-blendEnable-04727# If rasterization is not+--     disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- -   #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@@ -3676,6 +3706,16 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --+-- -   #VUID-vkCmdDrawIndexedIndirect-blendEnable-04727# If rasterization+--     is not disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- -   #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@@ -5692,18 +5732,6 @@ --     have been created with @flags@ containing --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' ----- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-04052# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-04053# If @dstImage@ has a---     depth\/stencil format, the @bufferOffset@ member of any element of---     @pRegions@ /must/ be a multiple of @4@--- -- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-04477# If the queue --     family used to create the 'Vulkan.Core10.Handles.CommandPool' which --     @commandBuffer@ was allocated from does not support@@ -5824,6 +5852,29 @@ --     element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be --     @0@ and @imageSubresource.layerCount@ /must/ be @1@ --+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-04725# If @dstImage@ is not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ multiplied by the+--     texel block size of @dstImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-04726# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ divided by the+--     compressed texel block width and then multiplied by the texel block+--     size of @dstImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-04052# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdCopyBufferToImage-srcImage-04053# If @dstImage@ has a+--     depth\/stencil format, the @bufferOffset@ member of any element of+--     @pRegions@ /must/ be a multiple of @4@+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter#@@ -6037,18 +6088,6 @@ --     have been created with @flags@ containing --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' ----- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-04054# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-04055# If @srcImage@ has a---     depth\/stencil format, the @bufferOffset@ member of any element of---     @pRegions@ /must/ be a multiple of @4@--- -- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00197# For each element of --     @pRegions@ , @imageOffset.x@ and (@imageExtent.width@ + --     @imageOffset.x@) /must/ both be greater than or equal to @0@ and@@ -6160,6 +6199,29 @@ --     element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be --     @0@ and @imageSubresource.layerCount@ /must/ be @1@ --+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-04725# If @srcImage@ is not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ multiplied by the+--     texel block size of @srcImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-04726# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ divided by the+--     compressed texel block width and then multiplied by the texel block+--     size of @srcImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-04052# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-04053# If @srcImage@ has a+--     depth\/stencil format, the @bufferOffset@ member of any element of+--     @pRegions@ /must/ be a multiple of @4@+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter#@@ -6641,9 +6703,6 @@ --     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' --     value ----- -   #VUID-vkCmdClearColorImage-pColor-parameter# @pColor@ /must/ be a---     valid pointer to a valid 'ClearColorValue' union--- -- -   #VUID-vkCmdClearColorImage-pRanges-parameter# @pRanges@ /must/ be a --     valid pointer to an array of @rangeCount@ valid --     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures@@ -8612,6 +8671,16 @@ --     create @queryPool@ /must/ not be --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP' --+-- -   #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+--     or+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'+--+-- -   #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'+-- -- -   #VUID-vkCmdBeginQuery-queryType-00800# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise precise occlusion queries> --     feature is not enabled, or the @queryType@ used to create@@ -10724,7 +10793,7 @@ -- For purpose of valid usage statements here and in related copy commands, -- a /blocked image/ is defined as: ----- -   a image with a /single-plane/, “@_422@” format, which is treated as+-- -   an image with a /single-plane/, “@_422@” format, which is treated as --     a format with a 2 × 1 compressed texel block, or -- -- -   a compressed image.@@ -11204,10 +11273,6 @@ -- -- -   #VUID-VkRenderPassBeginInfo-framebuffer-parameter# @framebuffer@ --     /must/ be a valid 'Vulkan.Core10.Handles.Framebuffer' handle------ -   #VUID-VkRenderPassBeginInfo-pClearValues-parameter# If---     @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid---     pointer to an array of @clearValueCount@ 'ClearValue' unions -- -- -   #VUID-VkRenderPassBeginInfo-commonparent# Both of @framebuffer@, and --     @renderPass@ /must/ have been created, allocated, or retrieved from
src/Vulkan/Core10/Device.hs view
@@ -165,7 +165,9 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import Vulkan.Core10.Handles (PhysicalDevice_T) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..))@@ -755,8 +757,10 @@ --     'Vulkan.Core12.PhysicalDeviceVulkan11Features', --     'Vulkan.Core12.PhysicalDeviceVulkan12Features', --     'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures',+--     'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',+--     'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', --     or---     'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT'+--     'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' -- -- -   #VUID-VkDeviceCreateInfo-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique, with the exception of@@ -843,8 +847,10 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f     | Just Refl <- eqT @e @DeviceDiagnosticsConfigCreateInfoNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -3093,10 +3093,11 @@     -- This also specifies whether shader modules /can/ declare the @Int16@     -- capability. However, this only enables a subset of the storage classes     -- that SPIR-V allows for the @Int16@ SPIR-V capability: Declaring and-    -- using 16-bit integers in the @Private@, @Workgroup@, and @Function@-    -- storage classes is enabled, while declaring them in the interface-    -- storage classes (e.g., @UniformConstant@, @Uniform@, @StorageBuffer@,-    -- @Input@, @Output@, and @PushConstant@) is not enabled.+    -- using 16-bit integers in the @Private@, @Workgroup@ (for non-Block+    -- variables), and @Function@ storage classes is enabled, while declaring+    -- them in the interface storage classes (e.g., @UniformConstant@,+    -- @Uniform@, @StorageBuffer@, @Input@, @Output@, and @PushConstant@) is+    -- not enabled.     shaderInt16 :: Bool   , -- | #features-shaderResourceResidency# @shaderResourceResidency@ specifies     -- whether image operations that return resource residency information are@@ -4063,13 +4064,17 @@   , -- | #limits-maxComputeSharedMemorySize# @maxComputeSharedMemorySize@ is the     -- maximum total storage size, in bytes, available for variables declared     -- with the @Workgroup@ storage class in shader modules (or with the-    -- @shared@ storage qualifier in GLSL) in the compute shader stage. The-    -- amount of storage consumed by the variables declared with the-    -- @Workgroup@ storage class is implementation-dependent. However, the-    -- amount of storage consumed may not exceed the largest block size that-    -- would be obtained if all active variables declared with @Workgroup@-    -- storage class were assigned offsets in an arbitrary order by-    -- successively taking the smallest valid offset according to the+    -- @shared@ storage qualifier in GLSL) in the compute shader stage. When+    -- variables declared with the @Workgroup@ storage class are explicitly+    -- laid out (hence they are also decorated with @Block@), the amount of+    -- storage consumed is the size of the largest Block variable, not counting+    -- any padding at the end. The amount of storage consumed by the non-Block+    -- variables declared with the @Workgroup@ storage class is+    -- implementation-dependent. However, the amount of storage consumed may+    -- not exceed the largest block size that would be obtained if all active+    -- non-Block variables declared with @Workgroup@ storage class were+    -- assigned offsets in an arbitrary order by successively taking the+    -- smallest valid offset according to the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Storage Buffer Layout>     -- rules. (This is equivalent to using the GLSL std430 layout rules.)     maxComputeSharedMemorySize :: Word32
src/Vulkan/Core10/Enums/QueryType.hs view
@@ -44,13 +44,20 @@ -- | 'QUERY_TYPE_PERFORMANCE_QUERY_INTEL' specifies a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-performance-intel Intel performance query>. pattern QUERY_TYPE_PERFORMANCE_QUERY_INTEL       = QueryType 1000210000--- No documentation found for Nested "VkQueryType" "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV"+-- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' specifies a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- for use with+-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV'. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = QueryType 1000165000 -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR' specifies a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying serialization acceleration structure size query> pattern QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = QueryType 1000150001 -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- for use with+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = QueryType 1000150000 -- | 'QUERY_TYPE_PERFORMANCE_QUERY_KHR' specifies a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-performance performance query>.
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -64,6 +64,7 @@                                                         , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR                                                         , STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR                                                         , STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT                                                         , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT@@ -71,6 +72,7 @@                                                         , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR                                                         , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT@@ -859,7 +861,9 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures',+-- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR', -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',@@ -1110,6 +1114,8 @@ pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR                     = StructureType 1000337001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR" pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR                    = StructureType 1000337000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = StructureType 1000336000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = StructureType 1000335000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"@@ -1124,6 +1130,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = StructureType 1000326001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = StructureType 1000326000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = StructureType 1000325000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV" pattern STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV  = StructureType 1000300001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"@@ -1992,6 +2000,7 @@              STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,              STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,              STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,              STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,@@ -1999,6 +2008,7 @@              STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,              STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,@@ -2463,19 +2473,22 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE     , "PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"     )-  , (STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT             , "DIRECTFB_SURFACE_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT    , "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")-  , (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR                          , "IMAGE_RESOLVE_2_KHR")-  , (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR                      , "BUFFER_IMAGE_COPY_2_KHR")-  , (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR                             , "IMAGE_BLIT_2_KHR")-  , (STRUCTURE_TYPE_IMAGE_COPY_2_KHR                             , "IMAGE_COPY_2_KHR")-  , (STRUCTURE_TYPE_BUFFER_COPY_2_KHR                            , "BUFFER_COPY_2_KHR")-  , (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR                     , "RESOLVE_IMAGE_INFO_2_KHR")-  , (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR                        , "BLIT_IMAGE_INFO_2_KHR")-  , (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR              , "COPY_IMAGE_TO_BUFFER_INFO_2_KHR")-  , (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR              , "COPY_BUFFER_TO_IMAGE_INFO_2_KHR")-  , (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR                        , "COPY_IMAGE_INFO_2_KHR")-  , (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR                       , "COPY_BUFFER_INFO_2_KHR")+  , (STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT         , "DIRECTFB_SURFACE_CREATE_INFO_EXT")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")+  , (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR                      , "IMAGE_RESOLVE_2_KHR")+  , (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR                  , "BUFFER_IMAGE_COPY_2_KHR")+  , (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR                         , "IMAGE_BLIT_2_KHR")+  , (STRUCTURE_TYPE_IMAGE_COPY_2_KHR                         , "IMAGE_COPY_2_KHR")+  , (STRUCTURE_TYPE_BUFFER_COPY_2_KHR                        , "BUFFER_COPY_2_KHR")+  , (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR                 , "RESOLVE_IMAGE_INFO_2_KHR")+  , (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR                    , "BLIT_IMAGE_INFO_2_KHR")+  , (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR          , "COPY_IMAGE_TO_BUFFER_INFO_2_KHR")+  , (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR          , "COPY_BUFFER_TO_IMAGE_INFO_2_KHR")+  , (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR                    , "COPY_IMAGE_INFO_2_KHR")+  , (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR                   , "COPY_BUFFER_INFO_2_KHR")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR+    , "PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"+    )   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, "PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT")   , (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM             , "COPY_COMMAND_TRANSFORM_INFO_QCOM")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT@@ -2492,6 +2505,9 @@     )   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV     , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"+    )+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR+    , "PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"     )   , (STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV      , "DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, "PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV")
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -491,7 +491,9 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures',+-- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',
src/Vulkan/Core10/ImageView.hs view
@@ -959,6 +959,13 @@ --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', --     @format@ /must/ be identical to the @format@ used to create @image@ --+-- -   #VUID-VkImageViewCreateInfo-format-04724# If @format@ is one of+--     those listed in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion>,+--     then the pNext chain /must/ include a+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'+--     structure with a conversion value other than VK_NULL_HANDLE+-- -- -   #VUID-VkImageViewCreateInfo-format-04714# If @format@ has a @_422@ --     or @_420@ suffix then @image@ /must/ have been created with a width --     that is a multiple of 2
src/Vulkan/Core10/OtherTypes.hs view
@@ -529,7 +529,7 @@ --     or @oldLayout@ and @newLayout@ define a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     and @oldLayout@ or @newLayout@ is---     'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' --     then @image@ /must/ have been created with at least one of --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or@@ -542,7 +542,7 @@ --     or @oldLayout@ and @newLayout@ define a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     and @oldLayout@ or @newLayout@ is---     'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR'+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' --     then @image@ /must/ have been created with --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' --     set@@ -553,7 +553,7 @@ --     or @oldLayout@ and @newLayout@ define a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     and @oldLayout@ or @newLayout@ is---     'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR'+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' --     then @image@ /must/ have been created with at least one of --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or@@ -566,7 +566,7 @@ --     or @oldLayout@ and @newLayout@ define a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     and @oldLayout@ or @newLayout@ is---     'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR'+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' --     then @image@ /must/ have been created with --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' --     set
src/Vulkan/Core10/Pass.hs view
@@ -934,11 +934,11 @@ --     be 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED', --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR',---     'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR',---     'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR',---     'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR',+--     '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.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR'+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' -- -- == Valid Usage (Implicit) --@@ -1178,8 +1178,8 @@ -- -- -   #VUID-VkSubpassDescription-pDepthStencilAttachment-02650# If --     @pDepthStencilAttachment@ is not @NULL@ and the attachment is not---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have a---     image format whose+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have+--     an image format whose --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'@@ -2274,12 +2274,12 @@ -- -   #VUID-VkFramebufferCreateInfo-flags-03190# If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @pNext@ chain /must/ include an instance of---     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- -- -   #VUID-VkFramebufferCreateInfo-flags-03191# If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @attachmentImageInfoCount@ member of an instance of---     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     in the @pNext@ chain /must/ be equal to either zero or --     @attachmentCount@ --@@ -2287,7 +2287,7 @@ --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @width@ member of any element of the @pAttachmentImageInfos@ --     member of an instance of---     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     in the @pNext@ chain that is used as an input, color, resolve or --     depth\/stencil attachment in @pRenderPass@ /must/ be greater than or --     equal to @width@@@ -2296,7 +2296,7 @@ --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @height@ member of any element of the @pAttachmentImageInfos@ --     member of an instance of---     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     in the @pNext@ chain that is used as an input, color, resolve or --     depth\/stencil attachment in @pRenderPass@ /must/ be greater than or --     equal to @height@@@ -2305,7 +2305,7 @@ --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @width@ member of any element of the @pAttachmentImageInfos@ --     member of an instance of---     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     in the @pNext@ chain that is referenced by --     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'::@fragmentDensityMapAttachment@ --     in @renderPass@ /must/ be greater than or equal to
src/Vulkan/Core10/Pipeline.hs view
@@ -3533,15 +3533,16 @@ --     of the @front@ and @back@ members of @pDepthStencilState@ /must/ be --     'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' ----- -   #VUID-VkGraphicsPipelineCreateInfo-blendEnable-02023# If---     rasterization is not disabled and the subpass uses color---     attachments, then for each color attachment in the subpass the---     @blendEnable@ member of the corresponding element of the---     @pAttachment@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE' if the attached image’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     does not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+-- -   #VUID-VkGraphicsPipelineCreateInfo-blendEnable-04717# If+--     rasterization is not disabled, then for each color attachment in the+--     subpass, if the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     of the format of the corresponding attachment description do not+--     contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746# If --     rasterization is not disabled and the subpass uses color
src/Vulkan/Core10/Queue.hs view
@@ -696,7 +696,7 @@ --     'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo' --     structure with @protectedSubmit@ set to --     'Vulkan.Core10.FundamentalTypes.TRUE', then each element of the---     @pCommandBuffers@ array /must/ be an protected command buffer+--     @pCommandBuffers@ array /must/ be a protected command buffer -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -218,7 +218,9 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import Vulkan.Core10.Handles (PhysicalDevice_T) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..))@@ -679,8 +681,10 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f
src/Vulkan/Core12.hs view
@@ -557,22 +557,22 @@ --     whether shader modules /can/ declare the @Float16@ capability. --     However, this only enables a subset of the storage classes that --     SPIR-V allows for the @Float16@ SPIR-V capability: Declaring and---     using 16-bit floats in the @Private@, @Workgroup@, and @Function@---     storage classes is enabled, while declaring them in the interface---     storage classes (e.g., @UniformConstant@, @Uniform@,---     @StorageBuffer@, @Input@, @Output@, and @PushConstant@) is not---     enabled.+--     using 16-bit floats in the @Private@, @Workgroup@ (for non-Block+--     variables), and @Function@ storage classes is enabled, while+--     declaring them in the interface storage classes (e.g.,+--     @UniformConstant@, @Uniform@, @StorageBuffer@, @Input@, @Output@,+--     and @PushConstant@) is not enabled. -- -- -   #features-shaderInt8# @shaderInt8@ indicates whether 8-bit integers --     (signed and unsigned) are supported in shader code. This also --     indicates whether shader modules /can/ declare the @Int8@ --     capability. However, this only enables a subset of the storage --     classes that SPIR-V allows for the @Int8@ SPIR-V capability:---     Declaring and using 8-bit integers in the @Private@, @Workgroup@,---     and @Function@ storage classes is enabled, while declaring them in---     the interface storage classes (e.g., @UniformConstant@, @Uniform@,---     @StorageBuffer@, @Input@, @Output@, and @PushConstant@) is not---     enabled.+--     Declaring and using 8-bit integers in the @Private@, @Workgroup@+--     (for non-Block variables), and @Function@ storage classes is+--     enabled, while declaring them in the interface storage classes+--     (e.g., @UniformConstant@, @Uniform@, @StorageBuffer@, @Input@,+--     @Output@, and @PushConstant@) is not enabled. -- -- -   #features-descriptorIndexing# @descriptorIndexing@ indicates whether --     the implementation supports the minimum set of descriptor indexing
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -1152,8 +1152,8 @@ -- -- -   #VUID-VkSubpassDescription2-pDepthStencilAttachment-02900# If --     @pDepthStencilAttachment@ is not @NULL@ and the attachment is not---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have a---     image format whose+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have+--     an image format whose --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'@@ -1634,6 +1634,7 @@     poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)     poke ((p `plusPtr` 24 :: Ptr PipelineStageFlags)) (zero)     poke ((p `plusPtr` 28 :: Ptr PipelineStageFlags)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Int32)) (zero)     f  instance FromCStruct SubpassDependency2 where
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -438,6 +438,16 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --+-- -   #VUID-vkCmdDrawIndirectCount-blendEnable-04727# If rasterization is+--     not disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- -   #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@@ -1008,6 +1018,17 @@ --     draw command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727# If+--     rasterization is not disabled in the bound graphics pipeline, then+--     for each color attachment in the subpass, if the corresponding image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04007# All vertex input --     bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs view
@@ -41,20 +41,20 @@     -- whether shader modules /can/ declare the @Float16@ capability. However,     -- this only enables a subset of the storage classes that SPIR-V allows for     -- the @Float16@ SPIR-V capability: Declaring and using 16-bit floats in-    -- the @Private@, @Workgroup@, and @Function@ storage classes is enabled,-    -- while declaring them in the interface storage classes (e.g.,-    -- @UniformConstant@, @Uniform@, @StorageBuffer@, @Input@, @Output@, and-    -- @PushConstant@) is not enabled.+    -- the @Private@, @Workgroup@ (for non-Block variables), and @Function@+    -- storage classes is enabled, while declaring them in the interface+    -- storage classes (e.g., @UniformConstant@, @Uniform@, @StorageBuffer@,+    -- @Input@, @Output@, and @PushConstant@) is not enabled.     shaderFloat16 :: Bool   , -- | #extension-features-shaderInt8# @shaderInt8@ indicates whether 8-bit     -- integers (signed and unsigned) are supported in shader code. This also     -- indicates whether shader modules /can/ declare the @Int8@ capability.     -- However, this only enables a subset of the storage classes that SPIR-V     -- allows for the @Int8@ SPIR-V capability: Declaring and using 8-bit-    -- integers in the @Private@, @Workgroup@, and @Function@ storage classes-    -- is enabled, while declaring them in the interface storage classes (e.g.,-    -- @UniformConstant@, @Uniform@, @StorageBuffer@, @Input@, @Output@, and-    -- @PushConstant@) is not enabled.+    -- integers in the @Private@, @Workgroup@ (for non-Block variables), and+    -- @Function@ storage classes is enabled, while declaring them in the+    -- interface storage classes (e.g., @UniformConstant@, @Uniform@,+    -- @StorageBuffer@, @Input@, @Output@, and @PushConstant@) is not enabled.     shaderInt8 :: Bool   }   deriving (Typeable, Eq)
src/Vulkan/Extensions.hs view
@@ -180,8 +180,10 @@                           , module Vulkan.Extensions.VK_KHR_wayland_surface                           , module Vulkan.Extensions.VK_KHR_win32_keyed_mutex                           , module Vulkan.Extensions.VK_KHR_win32_surface+                          , module Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout                           , module Vulkan.Extensions.VK_KHR_xcb_surface                           , module Vulkan.Extensions.VK_KHR_xlib_surface+                          , module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory                           , module Vulkan.Extensions.VK_MVK_ios_surface                           , module Vulkan.Extensions.VK_MVK_macos_surface                           , module Vulkan.Extensions.VK_NN_vi_surface@@ -406,8 +408,10 @@ import Vulkan.Extensions.VK_KHR_wayland_surface import Vulkan.Extensions.VK_KHR_win32_keyed_mutex import Vulkan.Extensions.VK_KHR_win32_surface+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout import Vulkan.Extensions.VK_KHR_xcb_surface import Vulkan.Extensions.VK_KHR_xlib_surface+import Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory import Vulkan.Extensions.VK_MVK_ios_surface import Vulkan.Extensions.VK_MVK_macos_surface import Vulkan.Extensions.VK_NN_vi_surface
src/Vulkan/Extensions/Dependencies.hs view
@@ -131,8 +131,10 @@ import Vulkan.Extensions.VK_KHR_wayland_surface (pattern KHR_WAYLAND_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_win32_keyed_mutex (pattern KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_win32_surface (pattern KHR_WIN32_SURFACE_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_xcb_surface (pattern KHR_XCB_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_xlib_surface (pattern KHR_XLIB_SURFACE_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME) import Vulkan.Version (pattern MAKE_VERSION) import Vulkan.Extensions.VK_MVK_ios_surface (pattern MVK_IOS_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_MVK_macos_surface (pattern MVK_MACOS_SURFACE_EXTENSION_NAME)@@ -162,7 +164,7 @@ import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME) 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_QCOM_rotated_copy_commands (pattern QCOM_ROTATED_COPY_COMMANDS_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]@@ -452,6 +454,7 @@   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_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@@ -461,10 +464,11 @@     ]   EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME ->     [EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  QCOM_rotated_copy_commands_EXTENSION_NAME ->+  QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME ->     [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_COPY_COMMANDS_2_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_4444_FORMATS_EXTENSION_NAME     -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME                 -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_4444_FORMATS_EXTENSION_NAME                     -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME ->     [EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME, KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]   EXT_DIRECTFB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -347,7 +347,7 @@ -- coinciding timestamp values, however, depending on the nature of the -- time domains and other properties of the platform extrapolating values -- over a sufficiently long period of time /may/ no longer be accurate--- enough to fit any particular purpose so applications are expected to+-- enough to fit any particular purpose, so applications are expected to -- re-calibrate the timestamps on a regular basis. -- -- == Return Codes
src/Vulkan/Extensions/VK_EXT_debug_marker.hs view
@@ -920,6 +920,13 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     pMarkerName'' <- ContT $ useAsCString (mempty)     lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CChar))) pMarkerName''+    let pColor' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 4 CFloat)))+    lift $ case ((zero, zero, zero, zero)) of+      (e0, e1, e2, e3) -> do+        poke (pColor' :: Ptr CFloat) (CFloat (e0))+        poke (pColor' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))+        poke (pColor' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))+        poke (pColor' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))     lift $ f  instance FromCStruct DebugMarkerMarkerInfoEXT where
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -232,8 +232,8 @@ -- >     VkDebugUtilsMessengerEXT cb1, cb2, cb3; -- > -- >     // Must call extension functions through a function pointer:--- >     PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetDeviceProcAddr(device, "vkCreateDebugUtilsMessengerEXT");--- >     PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetDeviceProcAddr(device, "vkDestroyDebugUtilsMessengerEXT");+-- >     PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT");+-- >     PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- > -- >     VkDebugUtilsMessengeCreateInfoEXT callback1 = { -- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,  // sType@@ -287,11 +287,12 @@ -- or with validation layers that can print a friendly name when referring -- to objects in error messages. --+-- >     extern VkInstance instance; -- >     extern VkDevice device; -- >     extern VkImage image; -- > -- >     // Must call extension functions through a function pointer:--- >     PFN_vkSetDebugUtilsObjectNameEXT pfnSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetDeviceProcAddr(device, "vkSetDebugUtilsObjectNameEXT");+-- >     PFN_vkSetDebugUtilsObjectNameEXT pfnSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectNameEXT"); -- > -- >     // Set a name on the image -- >     const VkDebugUtilsObjectNameInfoEXT imageNameInfo =@@ -315,15 +316,15 @@ -- analysis tools can display a more usable visualization of the commands -- submitted. ----- >     extern VkDevice device;+-- >     extern VkInstance instance; -- >     extern VkCommandBuffer commandBuffer; -- > -- >     // Must call extension functions through a function pointer:--- >     PFN_vkQueueBeginDebugUtilsLabelEXT pfnQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkQueueBeginDebugUtilsLabelEXT");--- >     PFN_vkQueueEndDebugUtilsLabelEXT pfnQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkQueueEndDebugUtilsLabelEXT");--- >     PFN_vkCmdBeginDebugUtilsLabelEXT pfnCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdBeginDebugUtilsLabelEXT");--- >     PFN_vkCmdEndDebugUtilsLabelEXT pfnCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdEndDebugUtilsLabelEXT");--- >     PFN_vkCmdInsertDebugUtilsLabelEXT pfnCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdInsertDebugUtilsLabelEXT");+-- >     PFN_vkQueueBeginDebugUtilsLabelEXT pfnQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkQueueBeginDebugUtilsLabelEXT");+-- >     PFN_vkQueueEndDebugUtilsLabelEXT pfnQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkQueueEndDebugUtilsLabelEXT");+-- >     PFN_vkCmdBeginDebugUtilsLabelEXT pfnCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT");+-- >     PFN_vkCmdEndDebugUtilsLabelEXT pfnCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT");+-- >     PFN_vkCmdInsertDebugUtilsLabelEXT pfnCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT"); -- > -- >     // Describe the area being rendered -- >     const VkDebugUtilsLabelEXT houseLabel =@@ -1613,6 +1614,13 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     pLabelName'' <- ContT $ useAsCString (mempty)     lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CChar))) pLabelName''+    let pColor' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 4 CFloat)))+    lift $ case ((zero, zero, zero, zero)) of+      (e0, e1, e2, e3) -> do+        poke (pColor' :: Ptr CFloat) (CFloat (e0))+        poke (pColor' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))+        poke (pColor' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))+        poke (pColor' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))     lift $ f  instance FromCStruct DebugUtilsLabelEXT where@@ -1920,6 +1928,7 @@   pokeZeroCStruct p f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT)     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 32 :: Ptr Int32)) (zero)     pMessage'' <- ContT $ useAsCString (mempty)     lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CChar))) pMessage''     lift $ f
src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot view
@@ -232,8 +232,8 @@ -- >     VkDebugUtilsMessengerEXT cb1, cb2, cb3; -- > -- >     // Must call extension functions through a function pointer:--- >     PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetDeviceProcAddr(device, "vkCreateDebugUtilsMessengerEXT");--- >     PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetDeviceProcAddr(device, "vkDestroyDebugUtilsMessengerEXT");+-- >     PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT");+-- >     PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- > -- >     VkDebugUtilsMessengeCreateInfoEXT callback1 = { -- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,  // sType@@ -287,11 +287,12 @@ -- or with validation layers that can print a friendly name when referring -- to objects in error messages. --+-- >     extern VkInstance instance; -- >     extern VkDevice device; -- >     extern VkImage image; -- > -- >     // Must call extension functions through a function pointer:--- >     PFN_vkSetDebugUtilsObjectNameEXT pfnSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetDeviceProcAddr(device, "vkSetDebugUtilsObjectNameEXT");+-- >     PFN_vkSetDebugUtilsObjectNameEXT pfnSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectNameEXT"); -- > -- >     // Set a name on the image -- >     const VkDebugUtilsObjectNameInfoEXT imageNameInfo =@@ -315,15 +316,15 @@ -- analysis tools can display a more usable visualization of the commands -- submitted. ----- >     extern VkDevice device;+-- >     extern VkInstance instance; -- >     extern VkCommandBuffer commandBuffer; -- > -- >     // Must call extension functions through a function pointer:--- >     PFN_vkQueueBeginDebugUtilsLabelEXT pfnQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkQueueBeginDebugUtilsLabelEXT");--- >     PFN_vkQueueEndDebugUtilsLabelEXT pfnQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkQueueEndDebugUtilsLabelEXT");--- >     PFN_vkCmdBeginDebugUtilsLabelEXT pfnCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdBeginDebugUtilsLabelEXT");--- >     PFN_vkCmdEndDebugUtilsLabelEXT pfnCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdEndDebugUtilsLabelEXT");--- >     PFN_vkCmdInsertDebugUtilsLabelEXT pfnCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdInsertDebugUtilsLabelEXT");+-- >     PFN_vkQueueBeginDebugUtilsLabelEXT pfnQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkQueueBeginDebugUtilsLabelEXT");+-- >     PFN_vkQueueEndDebugUtilsLabelEXT pfnQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkQueueEndDebugUtilsLabelEXT");+-- >     PFN_vkCmdBeginDebugUtilsLabelEXT pfnCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT");+-- >     PFN_vkCmdEndDebugUtilsLabelEXT pfnCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT");+-- >     PFN_vkCmdInsertDebugUtilsLabelEXT pfnCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT"); -- > -- >     // Describe the area being rendered -- >     const VkDebugUtilsLabelEXT houseLabel =
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs view
@@ -15,7 +15,7 @@ --     285 -- -- [__Revision__]---     1+--     2 -- -- [__Extension and Version Dependencies__] --@@ -35,7 +35,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]---     2020-08-26+--     2021-01-06 -- -- [__IP Status__] --     No known IP claims.@@ -217,6 +217,12 @@ -- -- -   Revision 1, 2020-08-26 (Yiwei Zhang) --+--     -   Initial version+--+-- -   Revision 2, 2021-01-06 (Yiwei Zhang)+--+--     -   Minor description update+-- -- = See Also -- -- 'PFN_vkDeviceMemoryReportCallbackEXT',@@ -498,32 +504,36 @@   , -- | @size@ is the size of the memory object in bytes. If @type@ is     -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT',     -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT' or-    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @size@ /must/-    -- be a valid 'Vulkan.Core10.FundamentalTypes.DeviceSize' value.+    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @size@ is a+    -- valid 'Vulkan.Core10.FundamentalTypes.DeviceSize' value. Otherwise,+    -- @size@ is undefined.     size :: DeviceSize   , -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' value     -- specifying the type of the object associated with this device memory     -- report event. If @type@ is     -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT',-    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT' or-    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @objectType@-    -- /must/ be a valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' enum.+    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT',+    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT',+    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT' or+    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @objectType@ is+    -- a valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' enum. Otherwise,+    -- @objectType@ is undefined.     objectType :: ObjectType   , -- | @objectHandle@ is the object this device memory report event is     -- attributed to. If @type@ is     -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT',     -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT',     -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT' or-    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT', @objectHandle@ /must/ be-    -- a valid Vulkan handle of the type associated with @objectType@ as-    -- defined in the+    -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT', @objectHandle@ is a+    -- valid Vulkan handle of the type associated with @objectType@ as defined+    -- in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-types VkObjectType and Vulkan Handle Relationship>-    -- table.+    -- table. Otherwise, @objectHandle@ is undefined.     objectHandle :: Word64   , -- | @heapIndex@ describes which memory heap this device memory allocation is     -- made from. If @type@ is 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT'     -- or 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @heapIndex@-    -- /must/ correspond to one of the valid heaps from the+    -- corresponds to one of the valid heaps from the     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'     -- structure. Otherwise, @heapIndex@ is undefined.     heapIndex :: Word32@@ -555,6 +565,10 @@     poke ((p `plusPtr` 16 :: Ptr DeviceMemoryReportFlagsEXT)) (zero)     poke ((p `plusPtr` 20 :: Ptr DeviceMemoryReportEventTypeEXT)) (zero)     poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 40 :: Ptr ObjectType)) (zero)+    poke ((p `plusPtr` 48 :: Ptr Word64)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)     f  instance FromCStruct DeviceMemoryReportCallbackDataEXT where@@ -691,11 +705,11 @@ type PFN_vkDeviceMemoryReportCallbackEXT = FunPtr FN_vkDeviceMemoryReportCallbackEXT  -type EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION = 1+type EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION = 2  -- No documentation found for TopLevel "VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION" pattern EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION :: forall a . Integral a => a-pattern EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION = 1+pattern EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION = 2   type EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME = "VK_EXT_device_memory_report"
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot view
@@ -15,7 +15,7 @@ --     285 -- -- [__Revision__]---     1+--     2 -- -- [__Extension and Version Dependencies__] --@@ -35,7 +35,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]---     2020-08-26+--     2021-01-06 -- -- [__IP Status__] --     No known IP claims.@@ -216,6 +216,12 @@ -- == Version History -- -- -   Revision 1, 2020-08-26 (Yiwei Zhang)+--+--     -   Initial version+--+-- -   Revision 2, 2021-01-06 (Yiwei Zhang)+--+--     -   Minor description update -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs view
@@ -547,6 +547,8 @@     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr LineRasterizationModeEXT)) (zero)     poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 28 :: Ptr Word16)) (zero)     f  instance FromCStruct PipelineRasterizationLineStateCreateInfoEXT where
src/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -472,11 +472,6 @@ -- -   #VUID-VkSampleLocationsInfoEXT-sType-sType# @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT' ----- -   #VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-parameter# If---     @sampleLocationsPerPixel@ is not @0@, @sampleLocationsPerPixel@---     /must/ be a valid---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value--- -- -   #VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter# If --     @sampleLocationsCount@ is not @0@, @pSampleLocations@ /must/ be a --     valid pointer to an array of @sampleLocationsCount@@@ -492,8 +487,8 @@ -- 'SubpassSampleLocationsEXT', 'cmdSetSampleLocationsEXT' data SampleLocationsInfoEXT = SampleLocationsInfoEXT   { -- | @sampleLocationsPerPixel@ is a-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying-    -- the number of sample locations per pixel.+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+    -- specifying the number of sample locations per pixel.     sampleLocationsPerPixel :: SampleCountFlagBits   , -- | @sampleLocationGridSize@ is the size of the sample location grid to     -- select custom sample locations for.@@ -525,6 +520,7 @@   pokeZeroCStruct p f = do     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr SampleCountFlagBits)) (zero)     poke ((p `plusPtr` 20 :: Ptr Extent2D)) (zero)     f 
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -192,7 +192,7 @@ -- to a destination access of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' -- at pipeline stage--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'.+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'. -- -- 2) How does this interact with multiview? --@@ -836,6 +836,16 @@ --     used to create @queryPool@ /must/ not be --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP' --+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-04728# The @queryType@+--     used to create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+--     or+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'+--+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-04729# The @queryType@+--     used to create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'+-- -- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-00800# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise precise occlusion queries> --     feature is not enabled, or the @queryType@ used to create@@ -1566,6 +1576,17 @@ --     draw command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727# If+--     rasterization is not disabled in the bound graphics pipeline, then+--     for each color attachment in the subpass, if the corresponding image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04007# All vertex input --     bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot view
@@ -192,7 +192,7 @@ -- to a destination access of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' -- at pipeline stage--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'.+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'. -- -- 2) How does this interact with multiview? --
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -1266,6 +1266,7 @@ import Data.Vector (generateM) import qualified Data.Vector (imapM_) import qualified Data.Vector (length)+import qualified Data.Vector (null) import Foreign.C.Types (CSize(..)) import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (FromCStruct(..))@@ -4532,8 +4533,9 @@ --     'AccelerationStructureBuildGeometryInfoKHR' structure -- -- -   #VUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameter#---     @pMaxPrimitiveCounts@ /must/ be a valid pointer to an array of---     @pBuildInfo->geometryCount@ @uint32_t@ values+--     If @pMaxPrimitiveCounts@ is not @NULL@, @pMaxPrimitiveCounts@ /must/+--     be a valid pointer to an array of @pBuildInfo->geometryCount@+--     @uint32_t@ values -- -- -   #VUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameter# --     @pSizeInfo@ /must/ be a valid pointer to a@@ -4567,10 +4569,14 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAccelerationStructureBuildSizesKHR is null" Nothing Nothing   let vkGetAccelerationStructureBuildSizesKHR' = mkVkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHRPtr   pBuildInfo <- ContT $ withCStruct (buildInfo)-  pPMaxPrimitiveCounts <- ContT $ allocaBytesAligned @Word32 ((Data.Vector.length (maxPrimitiveCounts)) * 4) 4-  lift $ Data.Vector.imapM_ (\i e -> poke (pPMaxPrimitiveCounts `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (maxPrimitiveCounts)+  pMaxPrimitiveCounts <- if Data.Vector.null (maxPrimitiveCounts)+    then pure nullPtr+    else do+      pPMaxPrimitiveCounts <- ContT $ allocaBytesAligned @Word32 (((Data.Vector.length (maxPrimitiveCounts))) * 4) 4+      lift $ Data.Vector.imapM_ (\i e -> poke (pPMaxPrimitiveCounts `plusPtr` (4 * (i)) :: Ptr Word32) (e)) ((maxPrimitiveCounts))+      pure $ pPMaxPrimitiveCounts   pPSizeInfo <- ContT (withZeroCStruct @AccelerationStructureBuildSizesInfoKHR)-  lift $ traceAroundEvent "vkGetAccelerationStructureBuildSizesKHR" (vkGetAccelerationStructureBuildSizesKHR' (deviceHandle (device)) (buildType) pBuildInfo (pPMaxPrimitiveCounts) (pPSizeInfo))+  lift $ traceAroundEvent "vkGetAccelerationStructureBuildSizesKHR" (vkGetAccelerationStructureBuildSizesKHR' (deviceHandle (device)) (buildType) pBuildInfo pMaxPrimitiveCounts (pPSizeInfo))   pSizeInfo <- lift $ peekCStruct @AccelerationStructureBuildSizesInfoKHR pPSizeInfo   pure $ (pSizeInfo) @@ -4916,57 +4922,8 @@ -- @vertexStride@ for acceleration structure geometry is instead restricted -- to being a 32-bit value. ----- == Valid Usage------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735#---     @vertexStride@ /must/ be a multiple of the size in bytes of the---     smallest component of @vertexFormat@------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819#---     @vertexStride@ /must/ be less than or equal to 232-1------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797#---     @vertexFormat@ /must/ support the---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'---     in---     'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@---     as returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798#---     @indexType@ /must/ be---     'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16',---     'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32', or---     'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'--- -- == Valid Usage (Implicit) ----- -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sType#---     @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR'------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNext#---     @pNext@ /must/ be @NULL@------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter#---     @vertexFormat@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format'---     value------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexData-parameter#---     @vertexData@ /must/ be a valid 'DeviceOrHostAddressConstKHR' union------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter#---     @indexType@ /must/ be a valid---     'Vulkan.Core10.Enums.IndexType.IndexType' value------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexData-parameter#---     If @indexData@ is not @0@, @indexData@ /must/ be a valid---     'DeviceOrHostAddressConstKHR' union------ -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-transformData-parameter#---     If @transformData@ is not @0@, @transformData@ /must/ be a valid---     'DeviceOrHostAddressConstKHR' union--- -- = See Also -- -- 'AccelerationStructureGeometryDataKHR', 'DeviceOrHostAddressConstKHR',@@ -4977,17 +4934,45 @@ data AccelerationStructureGeometryTrianglesDataKHR = AccelerationStructureGeometryTrianglesDataKHR   { -- | @vertexFormat@ is the 'Vulkan.Core10.Enums.Format.Format' of each vertex     -- element.+    --+    -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797#+    -- @vertexFormat@ /must/ support the+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'+    -- in+    -- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@+    -- as returned by+    -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'+    --+    -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter#+    -- @vertexFormat@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format'+    -- value     vertexFormat :: Format   , -- | @vertexData@ is a device or host address to memory containing vertex     -- data for this geometry.     vertexData :: DeviceOrHostAddressConstKHR   , -- | @vertexStride@ is the stride in bytes between each vertex.+    --+    -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735#+    -- @vertexStride@ /must/ be a multiple of the size in bytes of the smallest+    -- component of @vertexFormat@+    --+    -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819#+    -- @vertexStride@ /must/ be less than or equal to 232-1     vertexStride :: DeviceSize   , -- | @maxVertex@ is the highest index of a vertex that will be addressed by a     -- build command using this structure.     maxVertex :: Word32   , -- | @indexType@ is the 'Vulkan.Core10.Enums.IndexType.IndexType' of each     -- index element.+    --+    -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798#+    -- @indexType@ /must/ be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16',+    -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32', or+    -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'+    --+    -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter#+    -- @indexType@ /must/ be a valid 'Vulkan.Core10.Enums.IndexType.IndexType'+    -- value     indexType :: IndexType   , -- | @indexData@ is a device or host address to memory containing index data     -- for this geometry.@@ -5026,6 +5011,8 @@     lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)     lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)     lift $ poke ((p `plusPtr` 44 :: Ptr IndexType)) (zero)+    ContT $ pokeCStruct ((p `plusPtr` 48 :: Ptr DeviceOrHostAddressConstKHR)) (zero) . ($ ())+    ContT $ pokeCStruct ((p `plusPtr` 56 :: Ptr DeviceOrHostAddressConstKHR)) (zero) . ($ ())     lift $ f  instance Zero AccelerationStructureGeometryTrianglesDataKHR where@@ -5054,9 +5041,6 @@   { -- | @data@ is a device or host address to memory containing     -- 'AabbPositionsKHR' structures containing position data for each     -- axis-aligned bounding box in the geometry.-    ---    -- #VUID-VkAccelerationStructureGeometryAabbsDataKHR-data-parameter# @data@-    -- /must/ be a valid 'DeviceOrHostAddressConstKHR' union     data' :: DeviceOrHostAddressConstKHR   , -- | @stride@ is the stride in bytes between each entry in @data@. The stride     -- /must/ be a multiple of @8@.@@ -5115,9 +5099,6 @@     -- referencing individual 'AccelerationStructureInstanceKHR' structures if     -- @arrayOfPointers@ is 'Vulkan.Core10.FundamentalTypes.TRUE', or the     -- address of an array of 'AccelerationStructureInstanceKHR' structures.-    ---    -- #VUID-VkAccelerationStructureGeometryInstancesDataKHR-data-parameter#-    -- @data@ /must/ be a valid 'DeviceOrHostAddressConstKHR' union     data' :: DeviceOrHostAddressConstKHR   }   deriving (Typeable)@@ -5345,9 +5326,6 @@ --     @geometryCount@ valid pointers to valid --     'AccelerationStructureGeometryKHR' structures ----- -   #VUID-VkAccelerationStructureBuildGeometryInfoKHR-scratchData-parameter#---     @scratchData@ /must/ be a valid 'DeviceOrHostAddressKHR' union--- -- -   #VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparent# Both --     of @dstAccelerationStructure@, and @srcAccelerationStructure@ that --     are valid handles of non-ignored parameters /must/ have been@@ -5548,6 +5526,8 @@   pokeZeroCStruct p f = do     poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)     poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)     f  instance FromCStruct AccelerationStructureBuildRangeInfoKHR where@@ -6304,9 +6284,6 @@ --     @src@ /must/ be a valid --     'Vulkan.Extensions.Handles.AccelerationStructureKHR' handle ----- -   #VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-parameter#---     @dst@ /must/ be a valid 'DeviceOrHostAddressKHR' union--- -- -   #VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameter# --     @mode@ /must/ be a valid 'CopyAccelerationStructureModeKHR' value --@@ -6384,9 +6361,6 @@ -- -- -   #VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNext# --     @pNext@ /must/ be @NULL@------ -   #VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-parameter#---     @src@ /must/ be a valid 'DeviceOrHostAddressConstKHR' union -- -- -   #VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameter# --     @dst@ /must/ be a valid
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs view
@@ -2364,18 +2364,6 @@ --     not have been created with @flags@ containing --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' ----- -   #VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04052# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImage-04053# If @dstImage@ has---     a depth\/stencil format, the @bufferOffset@ member of any element of---     @pRegions@ /must/ be a multiple of @4@--- -- -   #VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04477# If the queue --     family used to create the 'Vulkan.Core10.Handles.CommandPool' which --     @commandBuffer@ was allocated from does not support@@ -2507,6 +2495,30 @@ --     for each element of @pRegions@, @imageSubresource.baseArrayLayer@ --     /must/ be @0@ and @imageSubresource.layerCount@ /must/ be @1@ --+-- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04725# If @dstImage@ is+--     not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ multiplied by the+--     texel block size of @dstImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04726# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ divided by the+--     compressed texel block width and then multiplied by the texel block+--     size of @dstImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04052# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-VkCopyBufferToImageInfo2KHR-srcImage-04053# If @dstImage@ has+--     a depth\/stencil format, the @bufferOffset@ member of any element of+--     @pRegions@ /must/ be a multiple of @4@+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkCopyBufferToImageInfo2KHR-sType-sType# @sType@ /must/ be@@ -2603,8 +2615,8 @@            mempty  --- | VkCopyImageToBufferInfo2KHR - Structure specifying parameters of a image--- to buffer copy command+-- | VkCopyImageToBufferInfo2KHR - Structure specifying parameters of an+-- image to buffer copy command -- -- == Valid Usage --@@ -2709,18 +2721,6 @@ --     not have been created with @flags@ containing --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' ----- -   #VUID-VkCopyImageToBufferInfo2KHR-commandBuffer-04054# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-04055# If @srcImage@ has---     a depth\/stencil format, the @bufferOffset@ member of any element of---     @pRegions@ /must/ be a multiple of @4@--- -- -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00197# For each --     element of @pRegions@ not containing --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'@@ -2843,6 +2843,32 @@ --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element of --     @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and --     @imageSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04725# If {imageparam} is+--     not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ multiplied by the+--     texel block size of {imageparam} /must/ be less than or equal to+--     231-1+--+-- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04726# If {imageparam} is+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ divided by the+--     compressed texel block width and then multiplied by the texel block+--     size of {imageparam} /must/ be less than or equal to 231-1+--+-- -   #VUID-VkCopyImageToBufferInfo2KHR-commandBuffer-04052# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-04053# If {imageparam}+--     has a depth\/stencil format, the @bufferOffset@ member of any+--     element of @pRegions@ /must/ be a multiple of @4@ -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_display.hs view
@@ -1591,6 +1591,9 @@ -- mode height) for @minSrcExtent@, @maxSrcExtent@, @minDstExtent@, and -- @maxDstExtent@. --+-- The value @supportedAlpha@ /must/ contain at least one valid+-- 'DisplayPlaneAlphaFlagBitsKHR' bit.+-- -- These values indicate the limits of the implementation’s individual -- fields. Not all combinations of values within the offset and extent -- ranges returned in 'DisplayPlaneCapabilitiesKHR' are guaranteed to be@@ -1737,10 +1740,9 @@ --     between @0@ and @1@, inclusive -- -- -   #VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255# @alphaMode@---     /must/ be @0@ or one of the bits present in the @supportedAlpha@---     member of 'DisplayPlaneCapabilitiesKHR' returned by---     'getDisplayPlaneCapabilitiesKHR' for the display plane corresponding---     to @displayMode@+--     /must/ be one of the bits present in the @supportedAlpha@ member of+--     'DisplayPlaneCapabilitiesKHR' for the display plane corresponding to+--     @displayMode@ -- -- -   #VUID-VkDisplaySurfaceCreateInfoKHR-width-01256# The @width@ and --     @height@ members of @imageExtent@ /must/ be less than or equal to
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -348,14 +348,13 @@ --     'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT', --     @name@ /must/ be @NULL@ ----- -   #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460# If---     @handleType@ is not @0@ and @handle@ is @NULL@, @name@ /must/ name a---     valid synchronization primitive of the type specified by---     @handleType@+-- -   #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460# If @handle@+--     is @NULL@, @name@ /must/ name a valid synchronization primitive of+--     the type specified by @handleType@ ----- -   #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461# If---     @handleType@ is not @0@ and @name@ is @NULL@, @handle@ /must/ be a---     valid handle of the type specified by @handleType@+-- -   #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461# If @name@ is+--     @NULL@, @handle@ /must/ be a valid handle of the type specified by+--     @handleType@ -- -- -   #VUID-VkImportFenceWin32HandleInfoKHR-handle-01462# If @handle@ is --     not @NULL@, @name@ /must/ be @NULL@@@ -384,11 +383,6 @@ --     /must/ be a valid combination of --     'Vulkan.Core11.Enums.FenceImportFlagBits.FenceImportFlagBits' values ----- -   #VUID-VkImportFenceWin32HandleInfoKHR-handleType-parameter# If---     @handleType@ is not @0@, @handleType@ /must/ be a valid---     'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'---     value--- -- == Host Synchronization -- -- -   Host access to @fence@ /must/ be externally synchronized@@ -438,6 +432,7 @@     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr Fence)) (zero)+    poke ((p `plusPtr` 28 :: Ptr ExternalFenceHandleTypeFlagBits)) (zero)     f  instance FromCStruct ImportFenceWin32HandleInfoKHR where
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -347,11 +347,11 @@ --     physical device as @device@ -- -- -   #VUID-VkImportMemoryFdInfoKHR-handleType-00669# If @handleType@ is---     not @0@, it /must/ be defined as a POSIX file descriptor handle+--     not @0@, it /must/ be+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT'. -- -- -   #VUID-VkImportMemoryFdInfoKHR-handleType-00670# If @handleType@ is---     not @0@, @fd@ /must/ be a valid handle of the type specified by---     @handleType@+--     not @0@, @fd@ /must/ be a valid POSIX file descriptor handle. -- -- -   #VUID-VkImportMemoryFdInfoKHR-fd-01746# The memory represented by --     @fd@ /must/ have been created from a physical device and driver that
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -390,13 +390,12 @@ --     @name@ /must/ be @NULL@ -- -- -   #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467# If---     @handleType@ is not @0@ and @handle@ is @NULL@, @name@ /must/ name a---     valid synchronization primitive of the type specified by---     @handleType@+--     @handle@ is @NULL@, @name@ /must/ name a valid synchronization+--     primitive of the type specified by @handleType@ -- -- -   #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468# If---     @handleType@ is not @0@ and @name@ is @NULL@, @handle@ /must/ be a---     valid handle of the type specified by @handleType@+--     @name@ is @NULL@, @handle@ /must/ be a valid handle of the type+--     specified by @handleType@ -- -- -   #VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469# If @handle@ --     is not @NULL@, @name@ /must/ be @NULL@@@ -457,11 +456,6 @@ --     'Vulkan.Core11.Enums.SemaphoreImportFlagBits.SemaphoreImportFlagBits' --     values ----- -   #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-parameter# If---     @handleType@ is not @0@, @handleType@ /must/ be a valid---     'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'---     value--- -- == Host Synchronization -- -- -   Host access to @semaphore@ /must/ be externally synchronized@@ -512,6 +506,7 @@     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)+    poke ((p `plusPtr` 28 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (zero)     f  instance FromCStruct ImportSemaphoreWin32HandleInfoKHR where
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -1021,6 +1021,7 @@     pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty)     pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty)     poke ((p `plusPtr` 528 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 536 :: Ptr CSize)) (CSize (zero))     f  instance FromCStruct PipelineExecutableInternalRepresentationKHR where
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs view
@@ -373,7 +373,7 @@ --     'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', or --     'Vulkan.Core10.Handles.BufferView' in a layout defined by --     @descriptorUpdateTemplate@ when it was created with---     'Vulkan.Extensions.VK_KHR_descriptor_update_template.createDescriptorUpdateTemplateKHR'+--     'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.createDescriptorUpdateTemplate' -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -2697,6 +2697,54 @@ --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' --     bit set --+-- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718# If @flags@+--     includes+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR',+--     each element of the @pLibraries@ member of @libraries@ /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'+--     bit set+--+-- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719# If @flags@+--     includes+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR',+--     each element of the @pLibraries@ member of @libraries@ /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'+--     bit set+--+-- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720# If @flags@+--     includes+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',+--     each element of the @pLibraries@ member of @libraries@ /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'+--     bit set+--+-- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721# If @flags@+--     includes+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',+--     each element of the @pLibraries@ member of @libraries@ /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'+--     bit set+--+-- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722# If @flags@+--     includes+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',+--     each element of the @pLibraries@ member of @libraries@ /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'+--     bit set+--+-- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723# If @flags@+--     includes+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',+--     each element of the @pLibraries@ member of @libraries@ /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'+--     bit set+-- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03595# If the --     <VK_KHR_pipeline_library.html VK_KHR_pipeline_library> extension is --     not enabled, @pLibraryInfo@ and @pLibraryInterface@ /must/ be@@ -3227,7 +3275,7 @@ data StridedDeviceAddressRegionKHR = StridedDeviceAddressRegionKHR   { -- | @deviceAddress@ is the device address (as returned by the     -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress'-    -- command) at which the region starts.+    -- command) at which the region starts, or zero if the region is unused.     deviceAddress :: DeviceAddress   , -- | @stride@ is the byte stride between consecutive elements.     stride :: DeviceSize
+ src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs view
@@ -0,0 +1,261 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_workgroup_memory_explicit_layout - device extension+--+-- == VK_KHR_workgroup_memory_explicit_layout+--+-- [__Name String__]+--     @VK_KHR_workgroup_memory_explicit_layout@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     337+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Caio Marcelo de Oliveira Filho+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_workgroup_memory_explicit_layout:%20&body=@cmarcelo%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-06-01+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_workgroup_memory_explicit_layout.html SPV_KHR_workgroup_memory_explicit_layout>+--+-- [__Contributors__]+--+--     -   Caio Marcelo de Oliveira Filho, Intel+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Graeme Leese, Broadcom+--+--     -   Jason Ekstrand, Intel+--+--     -   Daniel Koch, NVIDIA+--+-- == Description+--+-- This extension adds Vulkan support for the+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_workgroup_memory_explicit_layout.html SPV_KHR_workgroup_memory_explicit_layout>+-- SPIR-V extension, which allows shaders to explicitly define the layout+-- of @Workgroup@ storage class memory and create aliases between variables+-- from that storage class in a compute shader.+--+-- The aliasing feature allows different \"views\" on the same data, so the+-- shader can bulk copy data from another storage class using one type+-- (e.g. an array of large vectors), and then use the data with a more+-- specific type. It also enables reducing the amount of workgroup memory+-- consumed by allowing the shader to alias data whose lifetimes don’t+-- overlap.+--+-- The explicit layout support and some form of aliasing is also required+-- for layering OpenCL on top of Vulkan.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+--+-- == New Enum Constants+--+-- -   'KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME'+--+-- -   'KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR'+--+-- == New SPIR-V Capabilities+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout WorkgroupMemoryExplicitLayoutKHR>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout-8-bit-access WorkgroupMemoryExplicitLayout8BitAccessKHR>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout-16-bit-access WorkgroupMemoryExplicitLayout16BitAccessKHR>+--+-- == Version History+--+-- -   Revision 1, 2020-06-01 (Caio Marcelo de Oliveira Filho)+--+--     -   Initial version+--+-- = See Also+--+-- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout  ( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(..)+                                                                  , KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION+                                                                  , pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION+                                                                  , KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+                                                                  , pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+                                                                  ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR))+-- | VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR - Structure+-- describing the workgroup storage explicit layout features that can be+-- supported by an implementation+--+-- = Members+--+-- The members of the+-- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR' structure+-- describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+-- structure is included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- it is filled with values indicating whether the feature is supported.+-- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR' /can/ also be+-- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to enable the feature.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+  { -- | #features-workgroupMemoryExplicitLayout# @workgroupMemoryExplicitLayout@+    -- indicates whether the implementation supports the SPIR-V+    -- @WorkgroupMemoryExplicitLayoutKHR@ capability.+    workgroupMemoryExplicitLayout :: Bool+  , -- | #features-workgroupMemoryExplicitLayoutScalarBlockLayout#+    -- @workgroupMemoryExplicitLayoutScalarBlockLayout@ indicates whether the+    -- implementation supports scalar alignment for laying out Workgroup+    -- Blocks.+    workgroupMemoryExplicitLayoutScalarBlockLayout :: Bool+  , -- | #features-workgroupMemoryExplicitLayout8BitAccess#+    -- @workgroupMemoryExplicitLayout8BitAccess@ indicates whether objects in+    -- the @Workgroup@ 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+    -- @WorkgroupMemoryExplicitLayout8BitAccessKHR@ capability.+    workgroupMemoryExplicitLayout8BitAccess :: Bool+  , -- | #features-workgroupMemoryExplicitLayout16BitAccess#+    -- @workgroupMemoryExplicitLayout16BitAccess@ indicates whether objects in+    -- the @Workgroup@ 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 indicates whether shader modules /can/+    -- declare the @WorkgroupMemoryExplicitLayout16BitAccessKHR@ capability.+    workgroupMemoryExplicitLayout16BitAccess :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR++instance ToCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (workgroupMemoryExplicitLayout))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (workgroupMemoryExplicitLayoutScalarBlockLayout))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (workgroupMemoryExplicitLayout8BitAccess))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (workgroupMemoryExplicitLayout16BitAccess))+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR where+  peekCStruct p = do+    workgroupMemoryExplicitLayout <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    workgroupMemoryExplicitLayoutScalarBlockLayout <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    workgroupMemoryExplicitLayout8BitAccess <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    workgroupMemoryExplicitLayout16BitAccess <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+    pure $ PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+             (bool32ToBool workgroupMemoryExplicitLayout) (bool32ToBool workgroupMemoryExplicitLayoutScalarBlockLayout) (bool32ToBool workgroupMemoryExplicitLayout8BitAccess) (bool32ToBool workgroupMemoryExplicitLayout16BitAccess)++instance Storable PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR where+  zero = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+           zero+           zero+           zero+           zero+++type KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION"+pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION = 1+++type KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME = "VK_KHR_workgroup_memory_explicit_layout"++-- No documentation found for TopLevel "VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME"+pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME = "VK_KHR_workgroup_memory_explicit_layout"+
+ src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot view
@@ -0,0 +1,129 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_workgroup_memory_explicit_layout - device extension+--+-- == VK_KHR_workgroup_memory_explicit_layout+--+-- [__Name String__]+--     @VK_KHR_workgroup_memory_explicit_layout@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     337+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Caio Marcelo de Oliveira Filho+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_workgroup_memory_explicit_layout:%20&body=@cmarcelo%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-06-01+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_workgroup_memory_explicit_layout.html SPV_KHR_workgroup_memory_explicit_layout>+--+-- [__Contributors__]+--+--     -   Caio Marcelo de Oliveira Filho, Intel+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Graeme Leese, Broadcom+--+--     -   Jason Ekstrand, Intel+--+--     -   Daniel Koch, NVIDIA+--+-- == Description+--+-- This extension adds Vulkan support for the+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_workgroup_memory_explicit_layout.html SPV_KHR_workgroup_memory_explicit_layout>+-- SPIR-V extension, which allows shaders to explicitly define the layout+-- of @Workgroup@ storage class memory and create aliases between variables+-- from that storage class in a compute shader.+--+-- The aliasing feature allows different \"views\" on the same data, so the+-- shader can bulk copy data from another storage class using one type+-- (e.g. an array of large vectors), and then use the data with a more+-- specific type. It also enables reducing the amount of workgroup memory+-- consumed by allowing the shader to alias data whose lifetimes don’t+-- overlap.+--+-- The explicit layout support and some form of aliasing is also required+-- for layering OpenCL on top of Vulkan.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+--+-- == New Enum Constants+--+-- -   'KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME'+--+-- -   'KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR'+--+-- == New SPIR-V Capabilities+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout WorkgroupMemoryExplicitLayoutKHR>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout-8-bit-access WorkgroupMemoryExplicitLayout8BitAccessKHR>+--+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout-16-bit-access WorkgroupMemoryExplicitLayout16BitAccessKHR>+--+-- == Version History+--+-- -   Revision 1, 2020-06-01 (Caio Marcelo de Oliveira Filho)+--+--     -   Initial version+--+-- = See Also+--+-- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout  (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR++instance ToCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+instance Show PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR++instance FromCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+
+ src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs view
@@ -0,0 +1,200 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_zero_initialize_workgroup_memory - device extension+--+-- == VK_KHR_zero_initialize_workgroup_memory+--+-- [__Name String__]+--     @VK_KHR_zero_initialize_workgroup_memory@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     326+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Alan Baker+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_zero_initialize_workgroup_memory:%20&body=@alan-baker%20 >+--+-- [__Last Modified Date__]+--     2020-11-18+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Interactions and External Dependencies__]+--     None+--+-- [__Contributors__]+--+--     -   Alan Baker, Google+--+--     -   Jeff Bolz, Nvidia+--+--     -   Jason Ekstrand, Intel+--+-- This extension allows the use of a null constant initializer on shader+-- Workgroup memory variables, allowing implementations to expose any+-- special hardware or instructions they may have. Zero initialization is+-- commonly used by applications running untrusted content (e.g. web+-- browsers) as way of defeating memory-scraping attacks.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+--+-- == New Enum Constants+--+-- -   'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME'+--+-- -   'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR'+--+-- == Version History+--+-- -   Revision 1, 2020-11-18 (Alan Baker)+--+--     -   Internal draft version+--+-- = See Also+--+-- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_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_KHR_zero_initialize_workgroup_memory  ( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(..)+                                                                  , KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION+                                                                  , pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION+                                                                  , KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME+                                                                  , pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME+                                                                  ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR))+-- | VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR - Structure+-- describing support for zero initialization of workgroup memory by an+-- implementation+--+-- = Members+--+-- The member of the+-- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' structure+-- describe the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+-- structure is included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- it is filled with a value indicating whether the feature is supported.+-- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' /can/ also be+-- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to enable the features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+  { -- | #features-shaderZeroInitializeWorkgroupMemory#+    -- @shaderZeroInitializeWorkgroupMemory@ specifies whether the+    -- implementation supports initializing a variable in Workgroup storage+    -- class.+    shaderZeroInitializeWorkgroupMemory :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR++instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderZeroInitializeWorkgroupMemory))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where+  peekCStruct p = do+    shaderZeroInitializeWorkgroupMemory <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+             (bool32ToBool shaderZeroInitializeWorkgroupMemory)++instance Storable PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where+  zero = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+           zero+++type KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION"+pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION = 1+++type KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME = "VK_KHR_zero_initialize_workgroup_memory"++-- No documentation found for TopLevel "VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME"+pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME = "VK_KHR_zero_initialize_workgroup_memory"+
+ src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs-boot view
@@ -0,0 +1,101 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_zero_initialize_workgroup_memory - device extension+--+-- == VK_KHR_zero_initialize_workgroup_memory+--+-- [__Name String__]+--     @VK_KHR_zero_initialize_workgroup_memory@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     326+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Alan Baker+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_zero_initialize_workgroup_memory:%20&body=@alan-baker%20 >+--+-- [__Last Modified Date__]+--     2020-11-18+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Interactions and External Dependencies__]+--     None+--+-- [__Contributors__]+--+--     -   Alan Baker, Google+--+--     -   Jeff Bolz, Nvidia+--+--     -   Jason Ekstrand, Intel+--+-- This extension allows the use of a null constant initializer on shader+-- Workgroup memory variables, allowing implementations to expose any+-- special hardware or instructions they may have. Zero initialization is+-- commonly used by applications running untrusted content (e.g. web+-- browsers) as way of defeating memory-scraping attacks.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+--+-- == New Enum Constants+--+-- -   'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME'+--+-- -   'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR'+--+-- == Version History+--+-- -   Revision 1, 2020-11-18 (Alan Baker)+--+--     -   Internal draft version+--+-- = See Also+--+-- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_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_KHR_zero_initialize_workgroup_memory  (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR++instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR++instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -1099,6 +1099,17 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727# If+--     rasterization is not disabled in the bound graphics pipeline, then+--     for each color attachment in the subpass, if the corresponding image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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@@ -3015,6 +3026,8 @@     poke ((p `plusPtr` 64 :: Ptr Buffer)) (zero)     poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)     poke ((p `plusPtr` 80 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 96 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 112 :: Ptr DeviceSize)) (zero)     f  instance FromCStruct GeneratedCommandsInfoNV where
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -723,6 +723,16 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --+-- -   #VUID-vkCmdDrawMeshTasksNV-blendEnable-04727# If rasterization is+--     not disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- -   #VUID-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be --     less than or equal to --     'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@@@ -1204,6 +1214,17 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727# If+--     rasterization is not disabled in the bound graphics pipeline, then+--     for each color attachment in the subpass, if the corresponding image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- -   #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@@ -1728,6 +1749,17 @@ --     draw command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727# If+--     rasterization is not disabled in the bound graphics pipeline, then+--     for each color attachment in the subpass, if the corresponding image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #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
@@ -1284,13 +1284,11 @@ --     been built with --     'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR' --     if @queryType@ is---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' -- -- -   #VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-03432# --     @queryType@ /must/ be---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'---     or---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -1119,9 +1119,9 @@   , -- | @sampleCount@ identifies the per-pixel coverage sample count for the     -- combination of fragment area and coverage sample count to control.     sampleCount :: Word32-  , -- | @pSampleLocations@ is a pointer to an array of-    -- 'CoarseSampleOrderCustomNV' structures specifying the location of each-    -- sample in the custom ordering.+  , -- | @pSampleLocations@ is a pointer to an array of 'CoarseSampleLocationNV'+    -- structures specifying the location of each sample in the custom+    -- ordering.     sampleLocations :: Vector CoarseSampleLocationNV   }   deriving (Typeable)
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs view
@@ -95,9 +95,9 @@ -- -- == New Enum Constants ----- -   'QCOM_rotated_copy_commands_EXTENSION_NAME'+-- -   'QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME' ----- -   'QCOM_rotated_copy_commands_SPEC_VERSION'+-- -   'QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -119,10 +119,10 @@ -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_QCOM_rotated_copy_commands  ( CopyCommandTransformInfoQCOM(..)-                                                        , QCOM_rotated_copy_commands_SPEC_VERSION-                                                        , pattern QCOM_rotated_copy_commands_SPEC_VERSION-                                                        , QCOM_rotated_copy_commands_EXTENSION_NAME-                                                        , pattern QCOM_rotated_copy_commands_EXTENSION_NAME+                                                        , QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION+                                                        , pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION+                                                        , QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME+                                                        , pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME                                                         , SurfaceTransformFlagBitsKHR(..)                                                         , SurfaceTransformFlagsKHR                                                         ) where@@ -209,16 +209,16 @@            zero  -type QCOM_rotated_copy_commands_SPEC_VERSION = 0+type QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 0 --- No documentation found for TopLevel "VK_QCOM_rotated_copy_commands_SPEC_VERSION"-pattern QCOM_rotated_copy_commands_SPEC_VERSION :: forall a . Integral a => a-pattern QCOM_rotated_copy_commands_SPEC_VERSION = 0+-- No documentation found for TopLevel "VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION"+pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION :: forall a . Integral a => a+pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 0  -type QCOM_rotated_copy_commands_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"+type QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands" --- No documentation found for TopLevel "VK_QCOM_rotated_copy_commands_EXTENSION_NAME"-pattern QCOM_rotated_copy_commands_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a-pattern QCOM_rotated_copy_commands_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"+-- No documentation found for TopLevel "VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME"+pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands" 
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot view
@@ -95,9 +95,9 @@ -- -- == New Enum Constants ----- -   'QCOM_rotated_copy_commands_EXTENSION_NAME'+-- -   'QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME' ----- -   'QCOM_rotated_copy_commands_SPEC_VERSION'+-- -   'QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --
src/Vulkan/SPIRVRequirements.hs view
@@ -58,6 +58,8 @@ import Vulkan.Core12 (PhysicalDeviceVulkan12Features(..)) import Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import Vulkan.Core12 (PhysicalDeviceVulkan12Properties(..))+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(..)) import Vulkan.Extensions.VK_AMD_gcn_shader (pattern AMD_GCN_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_AMD_gpu_shader_half_float (pattern AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME) import Vulkan.Extensions.VK_AMD_gpu_shader_int16 (pattern AMD_GPU_SHADER_INT16_EXTENSION_NAME)@@ -111,6 +113,7 @@ import Vulkan.Extensions.VK_KHR_storage_buffer_storage_class (pattern KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_variable_pointers (pattern KHR_VARIABLE_POINTERS_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_vulkan_memory_model (pattern KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME) import Vulkan.Version (pattern MAKE_VERSION) import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_compute_shader_derivatives (pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME)@@ -601,6 +604,18 @@                              , deviceExtensionMinVersion = 0                              }     ]+  "SPV_KHR_multiview" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+  "SPV_KHR_workgroup_memory_explicit_layout" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]   _ -> ([], [])  spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -2130,6 +2145,60 @@                              }     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_MAINTENANCE2_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]+  "WorkgroupMemoryExplicitLayoutKHR" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceFeature+      { featureName   = "workgroupMemoryExplicitLayout"+      , checkFeature  = workgroupMemoryExplicitLayout :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool+      , enableFeature = \f ->+        f { workgroupMemoryExplicitLayout = True } :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+      }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]+  "WorkgroupMemoryExplicitLayout8BitAccessKHR" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceFeature+      { featureName = "workgroupMemoryExplicitLayout8BitAccess"+      , checkFeature = workgroupMemoryExplicitLayout8BitAccess :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+                       -> Bool+      , enableFeature =+        \f ->+          f { workgroupMemoryExplicitLayout8BitAccess = True } :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+      }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]+  "WorkgroupMemoryExplicitLayout16BitAccessKHR" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceFeature+      { featureName   = "workgroupMemoryExplicitLayout16BitAccess"+      , checkFeature  =+        workgroupMemoryExplicitLayout16BitAccess :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool+      , enableFeature = \f ->+        f { workgroupMemoryExplicitLayout16BitAccess = True } :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+      }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]
src/Vulkan/Version.hs view
@@ -15,17 +15,19 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 166+pattern HEADER_VERSION = 169   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 166+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 169   pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32 pattern MAKE_VERSION major minor patch <-   (\v -> (_VERSION_MAJOR v, _VERSION_MINOR v, _VERSION_PATCH v) -> (major, minor, patch))   where MAKE_VERSION major minor patch = major `shiftL` 22 .|. minor `shiftL` 12 .|. patch++{-# complete MAKE_VERSION #-}  _VERSION_MAJOR :: Word32 -> Word32 _VERSION_MAJOR v = v `shiftR` 22
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.9+version:        3.9.1 synopsis:       Bindings to the Vulkan graphics API. category:       Graphics homepage:       https://github.com/expipiplus1/vulkan#readme@@ -431,8 +431,10 @@       Vulkan.Extensions.VK_KHR_wayland_surface       Vulkan.Extensions.VK_KHR_win32_keyed_mutex       Vulkan.Extensions.VK_KHR_win32_surface+      Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout       Vulkan.Extensions.VK_KHR_xcb_surface       Vulkan.Extensions.VK_KHR_xlib_surface+      Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory       Vulkan.Extensions.VK_MVK_ios_surface       Vulkan.Extensions.VK_MVK_macos_surface       Vulkan.Extensions.VK_NN_vi_surface