packages feed

vulkan 3.23.4 → 3.24

raw patch · 56 files changed

+5430/−167 lines, 56 filesnew-uploader

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.24] - 2022-12-27+- Bump API version to v1.3.235+ ## [3.23.4] - 2022-12-27 - Bump API version to v1.3.234 
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.23.4"+version: "3.24" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan/CStruct/Extends.hs view
@@ -53,6 +53,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildGeometryInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildRangeInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildSizesInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (AccelerationStructureCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (AccelerationStructureCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureDeviceAddressInfoKHR)@@ -100,6 +101,7 @@ import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindVertexBufferIndirectCommandNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BlitImageInfo2)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (BufferCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionBufferCreateInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionConstraintsInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionCreateInfoFUCHSIA)@@ -174,7 +176,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationImageCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationMemoryAllocateInfoNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorAddressInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingPushDescriptorBufferHandleEXT) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorBufferInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorGetInfoEXT) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorImageInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfo)@@ -300,6 +306,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageBlit2)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (ImageCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImageConstraintsInfoFUCHSIA)@@ -329,6 +336,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (ImageSwapchainCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (ImageViewASTCDecodeModeEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_image_view_handle (ImageViewAddressPropertiesNVX)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (ImageViewCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageViewCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_image_view_handle (ImageViewHandleInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (ImageViewMinLodCreateInfoEXT)@@ -396,6 +404,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (MutableDescriptorTypeListEXT) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Offset2D) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Offset3D)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (OpaqueCaptureDescriptorDataCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowExecuteInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatPropertiesNV)@@ -442,6 +451,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (PhysicalDeviceDepthStencilResolveProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)@@ -740,6 +752,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (SamplerBorderColorComponentMappingCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (SamplerCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (SamplerCustomBorderColorCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (SamplerReductionModeCreateInfo)@@ -950,7 +963,9 @@   type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where+  Extends AccelerationStructureCreateInfoKHR OpaqueCaptureDescriptorDataCreateInfoEXT = ()   Extends AccelerationStructureCreateInfoKHR AccelerationStructureMotionInfoNV = ()+  Extends AccelerationStructureCreateInfoNV OpaqueCaptureDescriptorDataCreateInfoEXT = ()   Extends AccelerationStructureGeometryTrianglesDataKHR AccelerationStructureGeometryMotionTrianglesDataNV = ()   Extends AccelerationStructureGeometryTrianglesDataKHR AccelerationStructureTrianglesOpacityMicromapEXT = ()   Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatPropertiesANDROID = ()@@ -967,6 +982,7 @@   Extends BufferCreateInfo ExternalMemoryBufferCreateInfo = ()   Extends BufferCreateInfo BufferOpaqueCaptureAddressCreateInfo = ()   Extends BufferCreateInfo BufferDeviceAddressCreateInfoEXT = ()+  Extends BufferCreateInfo OpaqueCaptureDescriptorDataCreateInfoEXT = ()   Extends BufferCreateInfo BufferCollectionBufferCreateInfoFUCHSIA = ()   Extends BufferImageCopy2 CopyCommandTransformInfoQCOM = ()   Extends BufferViewCreateInfo ExportMetalObjectCreateInfoEXT = ()@@ -982,6 +998,7 @@   Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()   Extends ComputePipelineCreateInfo PipelineRobustnessCreateInfoEXT = ()   Extends DebugUtilsMessengerCallbackDataEXT DeviceAddressBindingCallbackDataEXT = ()+  Extends DescriptorBufferBindingInfoEXT DescriptorBufferBindingPushDescriptorBufferHandleEXT = ()   Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfo = ()   Extends DescriptorPoolCreateInfo MutableDescriptorTypeCreateInfoEXT = ()   Extends DescriptorSetAllocateInfo DescriptorSetVariableDescriptorCountAllocateInfo = ()@@ -1106,6 +1123,7 @@   Extends DeviceCreateInfo PhysicalDeviceInheritedViewportScissorFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceProvokingVertexFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceDescriptorBufferFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceShaderIntegerDotProductFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()@@ -1174,6 +1192,7 @@   Extends ImageCreateInfo ImageDrmFormatModifierListCreateInfoEXT = ()   Extends ImageCreateInfo ImageDrmFormatModifierExplicitCreateInfoEXT = ()   Extends ImageCreateInfo ImageStencilUsageCreateInfo = ()+  Extends ImageCreateInfo OpaqueCaptureDescriptorDataCreateInfoEXT = ()   Extends ImageCreateInfo BufferCollectionImageCreateInfoFUCHSIA = ()   Extends ImageCreateInfo ImageCompressionControlEXT = ()   Extends ImageCreateInfo ExportMetalObjectCreateInfoEXT = ()@@ -1192,6 +1211,7 @@   Extends ImageViewCreateInfo ImageViewUsageCreateInfo = ()   Extends ImageViewCreateInfo SamplerYcbcrConversionInfo = ()   Extends ImageViewCreateInfo ImageViewASTCDecodeModeEXT = ()+  Extends ImageViewCreateInfo OpaqueCaptureDescriptorDataCreateInfoEXT = ()   Extends ImageViewCreateInfo ImageViewMinLodCreateInfoEXT = ()   Extends ImageViewCreateInfo ExportMetalObjectCreateInfoEXT = ()   Extends ImageViewCreateInfo ImageViewSampleWeightCreateInfoQCOM = ()@@ -1333,6 +1353,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceProvokingVertexFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorBufferFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerDotProductFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()@@ -1426,6 +1447,8 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorBufferPropertiesEXT = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderIntegerDotProductProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceDrmPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = ()@@ -1498,6 +1521,7 @@   Extends SamplerCreateInfo SamplerReductionModeCreateInfo = ()   Extends SamplerCreateInfo SamplerCustomBorderColorCreateInfoEXT = ()   Extends SamplerCreateInfo SamplerBorderColorComponentMappingCreateInfoEXT = ()+  Extends SamplerCreateInfo OpaqueCaptureDescriptorDataCreateInfoEXT = ()   Extends SamplerYcbcrConversionCreateInfo ExternalFormatANDROID = ()   Extends SemaphoreCreateInfo ExportSemaphoreCreateInfo = ()   Extends SemaphoreCreateInfo ExportSemaphoreWin32HandleInfoKHR = ()@@ -1971,6 +1995,11 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT -> go @PhysicalDeviceProvokingVertexFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT -> go @PhysicalDeviceProvokingVertexPropertiesEXT   STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT -> go @PipelineRasterizationProvokingVertexStateCreateInfoEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT -> go @PhysicalDeviceDescriptorBufferFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT -> go @PhysicalDeviceDescriptorBufferPropertiesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT -> go @PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT+  STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT -> go @DescriptorBufferBindingPushDescriptorBufferHandleEXT+  STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT -> go @OpaqueCaptureDescriptorDataCreateInfoEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES -> go @PhysicalDeviceShaderIntegerDotProductFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES -> go @PhysicalDeviceShaderIntegerDotProductProperties   STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT -> go @PhysicalDeviceDrmPropertiesEXT@@ -2432,6 +2461,11 @@ {-# complete (::&) :: PhysicalDeviceProvokingVertexFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceProvokingVertexPropertiesEXT #-} {-# complete (::&) :: PipelineRasterizationProvokingVertexStateCreateInfoEXT #-}+{-# complete (::&) :: PhysicalDeviceDescriptorBufferFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceDescriptorBufferPropertiesEXT #-}+{-# complete (::&) :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT #-}+{-# complete (::&) :: DescriptorBufferBindingPushDescriptorBufferHandleEXT #-}+{-# complete (::&) :: OpaqueCaptureDescriptorDataCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductFeatures #-} {-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductProperties #-} {-# complete (::&) :: PhysicalDeviceDrmPropertiesEXT #-}
src/Vulkan/Core10/Buffer.hs view
@@ -74,6 +74,7 @@ import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryBufferCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (OpaqueCaptureDescriptorDataCreateInfoEXT) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -402,6 +403,54 @@ --     equal to --     'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties'::@maxBufferSize@ --+-- -   #VUID-VkBufferCreateInfo-usage-08097# If @usage@ includes+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT',+--     creating this 'Vulkan.Core10.Handles.Buffer' /must/ not cause the+--     total required space for all currently valid buffers using this flag+--     on the device to exceed+--     VkPhysicalDeviceDescriptorBufferPropertiesEXT::@samplerDescriptorBufferAddressSpaceSize@+--     or+--     VkPhysicalDeviceDescriptorBufferPropertiesEXT::@descriptorBufferAddressSpaceSize@+--+-- -   #VUID-VkBufferCreateInfo-usage-08098# If @usage@ includes+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT',+--     creating this 'Vulkan.Core10.Handles.Buffer' /must/ not cause the+--     total required space for all currently valid buffers using this flag+--     on the device to exceed+--     VkPhysicalDeviceDescriptorBufferPropertiesEXT::@resourceDescriptorBufferAddressSpaceSize@+--     or+--     VkPhysicalDeviceDescriptorBufferPropertiesEXT::@descriptorBufferAddressSpaceSize@+--+-- -   #VUID-VkBufferCreateInfo-flags-08099# If @flags@ includes+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',+--     the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-VkBufferCreateInfo-pNext-08100# If the @pNext@ chain includes+--     a+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+--     structure, @flags@ /must/ contain+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   #VUID-VkBufferCreateInfo-usage-08101# If @usage@ includes+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT',+--     the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferPushDescriptors descriptorBufferPushDescriptors>+--     feature /must/ be enabled+--+-- -   #VUID-VkBufferCreateInfo-usage-08102# If @usage@ includes+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-bufferlessPushDescriptors ::bufferlessPushDescriptors>+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-VkBufferCreateInfo-usage-08103# If @usage@ includes+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT',+--     @usage@ /must/ contain at least one of+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'+--     or+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkBufferCreateInfo-sType-sType# @sType@ /must/ be@@ -415,6 +464,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo', --     'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV', --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo',+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT', --     or --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR> --@@ -481,6 +531,7 @@   extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferCreateInfo e => b) -> Maybe b   extends _ f     | Just Refl <- eqT @e @BufferCollectionBufferCreateInfoFUCHSIA = Just f+    | Just Refl <- eqT @e @OpaqueCaptureDescriptorDataCreateInfoEXT = Just f     | Just Refl <- eqT @e @BufferDeviceAddressCreateInfoEXT = Just f     | Just Refl <- eqT @e @BufferOpaqueCaptureAddressCreateInfo = Just f     | Just Refl <- eqT @e @ExternalMemoryBufferCreateInfo = Just f
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -1395,7 +1395,11 @@ -- [@firstSet@..@firstSet@+@descriptorSetCount@-1] for subsequent -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands> -- set by @pipelineBindPoint@. Any bindings that were previously applied--- via these sets are no longer valid.+-- via these sets , or calls to+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT',+-- are no longer valid. -- -- Once bound, a descriptor set affects rendering of subsequent commands -- that interact with the given pipeline type in the command buffer until@@ -1541,6 +1545,12 @@ --     is not enabled, each element of @pDescriptorSets@ /must/ be a valid --     'Vulkan.Core10.Handles.DescriptorSet' --+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-08010# Each element of+--     @pDescriptorSets@ /must/ have been allocated with a+--     'Vulkan.Core10.Handles.DescriptorSetLayout' which was not created+--     with+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdBindDescriptorSets-commandBuffer-parameter#@@ -2071,13 +2081,41 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDraw-None-02699# Descriptors in each bound descriptor---     set, specified via 'cmdBindDescriptorSets', /must/ be valid as---     described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+-- -   #VUID-vkCmdDraw-None-08114# Descriptors in each bound descriptor+--     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they+--     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDraw-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-None-08116# Descriptors in bound descriptor buffers,+--     specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-None-08119# If a descriptor is dynamically used with+--     a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDraw-None-02700# A valid pipeline /must/ be bound to the --     pipeline bind point used by this command --@@ -3830,13 +3868,42 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawIndexed-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDrawIndexed-None-08114# Descriptors in each bound --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDrawIndexed-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08119# If a descriptor is dynamically+--     used with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDrawIndexed-None-02700# A valid pipeline /must/ be bound --     to the pipeline bind point used by this command --@@ -5594,13 +5661,42 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawIndirect-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDrawIndirect-None-08114# Descriptors in each bound --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDrawIndirect-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08119# If a descriptor is dynamically+--     used with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDrawIndirect-None-02700# A valid pipeline /must/ be bound --     to the pipeline bind point used by this command --@@ -7368,13 +7464,43 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawIndexedIndirect-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08114# Descriptors in each bound --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08115# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08117# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDrawIndexedIndirect-None-02700# A valid pipeline /must/ --     be bound to the pipeline bind point used by this command --@@ -9144,13 +9270,41 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDispatch-None-02699# Descriptors in each bound descriptor---     set, specified via 'cmdBindDescriptorSets', /must/ be valid as---     described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+-- -   #VUID-vkCmdDispatch-None-08114# Descriptors in each bound descriptor+--     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they+--     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDispatch-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-None-08119# If a descriptor is dynamically used+--     with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDispatch-None-02700# A valid pipeline /must/ be bound to --     the pipeline bind point used by this command --@@ -9621,12 +9775,42 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDispatchIndirect-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDispatchIndirect-None-08114# Descriptors in each bound --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-08115# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-08117# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdDispatchIndirect-None-02700# A valid pipeline /must/ be --     bound to the pipeline bind point used by this command
src/Vulkan/Core10/DescriptorSet.hs view
@@ -1191,6 +1191,7 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorDataEXT', -- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', -- 'Vulkan.Core10.Handles.ImageView', 'Vulkan.Core10.Handles.Sampler', -- 'WriteDescriptorSet'@@ -2202,12 +2203,31 @@ --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     then @descriptorCount@ /must/ be a multiple of @4@ ----- -   #VUID-VkDescriptorSetLayoutBinding-descriptorType-02210# If+-- -   #VUID-VkDescriptorSetLayoutBinding-descriptorType-08004# If --     @descriptorType@ is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+--     'Vulkan.Extensions.VK_EXT_inline_uniform_block.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     and 'DescriptorSetLayoutCreateInfo'::@flags@ does not contain+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --     then @descriptorCount@ /must/ be less than or equal to---     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxInlineUniformBlockSize@+--     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxInlineUniformBlockSize@ --+-- -   #VUID-VkDescriptorSetLayoutBinding-flags-08005# If+--     'DescriptorSetLayoutCreateInfo'::@flags@ contains+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT',+--     @descriptorType@ /must/ be+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER'+--+-- -   #VUID-VkDescriptorSetLayoutBinding-flags-08006# If+--     'DescriptorSetLayoutCreateInfo'::@flags@ contains+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT',+--     @descriptorCount@ /must/ less than or equal to @1@+--+-- -   #VUID-VkDescriptorSetLayoutBinding-flags-08007# If+--     'DescriptorSetLayoutCreateInfo'::@flags@ contains+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT',+--     and @descriptorCount@ is equal to @1@, @pImmutableSamplers@ /must/+--     not be @NULL@+-- -- -   #VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283# If --     @descriptorCount@ is not @0@, @stageFlags@ /must/ be a valid --     combination of@@ -2446,6 +2466,33 @@ --     'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT'::@mutableDescriptorType@ --     /must/ be enabled --+-- -   #VUID-VkDescriptorSetLayoutCreateInfo-flags-08000# If @flags@+--     contains+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     then all elements of @pBindings@ /must/ not have a @descriptorType@+--     of+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'+--     or+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'+--+-- -   #VUID-VkDescriptorSetLayoutCreateInfo-flags-08001# If @flags@+--     contains+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT',+--     @flags@ /must/ also contain+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-VkDescriptorSetLayoutCreateInfo-flags-08002# If @flags@+--     contains+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     then @flags@ /must/ not contain+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+--+-- -   #VUID-VkDescriptorSetLayoutCreateInfo-flags-08003# If @flags@+--     contains+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     then @flags@ /must/ not contain+--     'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkDescriptorSetLayoutCreateInfo-sType-sType# @sType@ /must/ be@@ -2868,6 +2915,11 @@ --     bit set, @descriptorPool@ /must/ have been created with the --     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT' --     flag set+--+-- -   #VUID-VkDescriptorSetAllocateInfo-pSetLayouts-08009# Each element of+--     @pSetLayouts@ /must/ not have been created with the+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--     bit set -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Device.hs view
@@ -113,6 +113,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)@@ -813,6 +814,11 @@ --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax> --     /must/ be enabled --+-- -   #VUID-VkDeviceCreateInfo-None-08095# If+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBuffer>+--     is enabled, @ppEnabledExtensionNames@ /must/ not contain+--     @VK_AMD_shader_fragment_mask@+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkDeviceCreateInfo-sType-sType# @sType@ /must/ be@@ -851,6 +857,7 @@ --     'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT',+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures', --     'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE', --     'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',@@ -1078,6 +1085,7 @@     | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeatures = Just f+    | Just Refl <- eqT @e @PhysicalDeviceDescriptorBufferFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f
src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs view
@@ -4,6 +4,7 @@                                                  , BufferCreateFlagBits( BUFFER_CREATE_SPARSE_BINDING_BIT                                                                        , BUFFER_CREATE_SPARSE_RESIDENCY_BIT                                                                        , BUFFER_CREATE_SPARSE_ALIASED_BIT+                                                                       , BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT                                                                        , BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT                                                                        , BUFFER_CREATE_PROTECTED_BIT                                                                        , ..@@ -58,6 +59,13 @@ -- 'BUFFER_CREATE_SPARSE_BINDING_BIT' flag. pattern BUFFER_CREATE_SPARSE_ALIASED_BIT = BufferCreateFlagBits 0x00000004 +-- | 'BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' specifies that+-- the buffer /can/ be used with descriptor buffers when capturing and+-- replaying (e.g. for trace capture and replay), see+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+-- for more detail.+pattern BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = BufferCreateFlagBits 0x00000020+ -- | 'BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' specifies that the -- buffer’s address /can/ be saved and reused on a subsequent run (e.g. for -- trace capture and replay), see@@ -88,6 +96,10 @@   ,     ( BUFFER_CREATE_SPARSE_ALIASED_BIT     , "SPARSE_ALIASED_BIT"+    )+  ,+    ( BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT+    , "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"     )   ,     ( BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs view
@@ -12,6 +12,9 @@                                                                      , BUFFER_USAGE_INDIRECT_BUFFER_BIT                                                                      , BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT                                                                      , BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT+                                                                     , BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT+                                                                     , BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT+                                                                     , BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT                                                                      , BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR                                                                      , BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR                                                                      , BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR@@ -114,6 +117,23 @@ -- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT" pattern BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = BufferUsageFlagBits 0x00800000 +-- | 'BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT' specifies that+-- the buffer, when bound, /can/ be used by the implementation to support+-- push descriptors when using descriptor buffers.+pattern BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits 0x04000000++-- | 'BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT' specifies that the+-- buffer is suitable to contain resource descriptors when bound as a+-- descriptor buffer.+pattern BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits 0x00400000++-- | 'BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT' specifies that the+-- buffer is suitable to contain sampler and combined image sampler+-- descriptors when bound as a descriptor buffer. Buffers containing+-- combined image sampler descriptors /must/ also specify+-- 'BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'.+pattern BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits 0x00200000+ -- | 'BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR' specifies that the buffer is -- suitable for use as a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table Shader Binding Table>.@@ -204,6 +224,18 @@   ,     ( BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT     , "MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"+    )+  ,+    ( BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT+    , "PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"+    )+  ,+    ( BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT+    , "RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"+    )+  ,+    ( BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT+    , "SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"     )   ,     ( BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR
src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs view
@@ -2,6 +2,8 @@ -- No documentation found for Chapter "DescriptorSetLayoutCreateFlagBits" module Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits  ( DescriptorSetLayoutCreateFlags                                                               , DescriptorSetLayoutCreateFlagBits( DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT+                                                                                                 , DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT+                                                                                                 , DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT                                                                                                  , DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR                                                                                                  , DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT                                                                                                  , ..@@ -43,6 +45,18 @@ -- non-UpdateAfterBind limits, whichever is larger. pattern DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = DescriptorSetLayoutCreateFlagBits 0x00000004 +-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT'+-- specifies that this is a layout only containing immutable samplers that+-- /can/ be bound by+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT'.+-- Unlike normal immutable samplers, embedded immutable samplers do not+-- require the application to provide them in a descriptor buffer.+pattern DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = DescriptorSetLayoutCreateFlagBits 0x00000020++-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' specifies that+-- this layout /must/ only be used with descriptor buffers.+pattern DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = DescriptorSetLayoutCreateFlagBits 0x00000010+ -- | 'DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR' specifies that -- descriptor sets /must/ not be allocated using this layout, and -- descriptors are instead pushed by@@ -72,6 +86,14 @@   [     ( DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT     , "HOST_ONLY_POOL_BIT_EXT"+    )+  ,+    ( DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT+    , "EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT"+    )+  ,+    ( DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT+    , "DESCRIPTOR_BUFFER_BIT_EXT"     )   ,     ( DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
src/Vulkan/Core10/Enums/DescriptorType.hs view
@@ -141,6 +141,7 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorGetInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorPoolSize', -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding', -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateEntry',
src/Vulkan/Core10/Enums/Format.hs view
@@ -272,6 +272,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorAddressInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentImageInfo', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', -- 'Vulkan.Core10.Image.ImageCreateInfo',
src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs view
@@ -9,6 +9,7 @@                                                                      , IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM                                                                      , IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT                                                                      , IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT+                                                                     , IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT                                                                      , IMAGE_CREATE_SUBSAMPLED_BIT_EXT                                                                      , IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT                                                                      , IMAGE_CREATE_CORNER_SAMPLED_BIT_NV@@ -103,6 +104,13 @@ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#multisampled-render-to-single-sampled multisampled rendering as a single-sampled framebuffer attachment> pattern IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = ImageCreateFlagBits 0x00040000 +-- | 'IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' specifies that+-- the image /can/ be used with descriptor buffers when capturing and+-- replaying (e.g. for trace capture and replay), see+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+-- for more detail.+pattern IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = ImageCreateFlagBits 0x00010000+ -- | 'IMAGE_CREATE_SUBSAMPLED_BIT_EXT' specifies that an image /can/ be in a -- subsampled format which /may/ be more optimal when written as an -- attachment by a render pass that has a fragment density map attachment.@@ -245,6 +253,10 @@   ,     ( IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT     , "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"+    )+  ,+    ( IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT+    , "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"     )   ,     ( IMAGE_CREATE_SUBSAMPLED_BIT_EXT
src/Vulkan/Core10/Enums/ImageViewCreateFlagBits.hs view
@@ -2,6 +2,7 @@ -- No documentation found for Chapter "ImageViewCreateFlagBits" module Vulkan.Core10.Enums.ImageViewCreateFlagBits  ( ImageViewCreateFlags                                                     , ImageViewCreateFlagBits( IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT+                                                                             , IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT                                                                              , IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT                                                                              , ..                                                                              )@@ -36,6 +37,13 @@ -- buffer that the render pass is recorded into pattern IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = ImageViewCreateFlagBits 0x00000002 +-- | 'IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' specifies+-- that the image view /can/ be used with descriptor buffers when capturing+-- and replaying (e.g. for trace capture and replay), see+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+-- for more detail.+pattern IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = ImageViewCreateFlagBits 0x00000004+ -- | 'IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' specifies that -- the fragment density map will be read by device during -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'@@ -45,17 +53,21 @@ conNameImageViewCreateFlagBits = "ImageViewCreateFlagBits"  enumPrefixImageViewCreateFlagBits :: String-enumPrefixImageViewCreateFlagBits = "IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_D"+enumPrefixImageViewCreateFlagBits = "IMAGE_VIEW_CREATE_"  showTableImageViewCreateFlagBits :: [(ImageViewCreateFlagBits, String)] showTableImageViewCreateFlagBits =   [     ( IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT-    , "EFERRED_BIT_EXT"+    , "FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"     )   ,+    ( IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT+    , "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"+    )+  ,     ( IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT-    , "YNAMIC_BIT_EXT"+    , "FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"     )   ] 
src/Vulkan/Core10/Enums/PipelineBindPoint.hs view
@@ -28,10 +28,12 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutCreateInfoNV', -- 'Vulkan.Core10.Pass.SubpassDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV',--- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR'+-- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT' newtype PipelineBindPoint = PipelineBindPoint Int32   deriving newtype (Eq, Ord, Storable, Zero) 
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -12,6 +12,7 @@                                                                            , PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV                                                                            , PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT                                                                            , PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT+                                                                           , PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT                                                                            , PIPELINE_CREATE_LIBRARY_BIT_KHR                                                                            , PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV                                                                            , PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR@@ -181,6 +182,12 @@ --     necessary to later perform an optimal link with --     'PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'. --+-- -   'PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' specifies that a+--     pipeline will be used with+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorbuffers descriptor buffers>,+--     rather than+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets descriptor sets>.+-- -- -   'PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' specifies --     that the pipeline /may/ be used with an attachment feedback loop --     including color attachments.@@ -266,6 +273,9 @@ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT" pattern PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = PipelineCreateFlagBits 0x00800000 +-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"+pattern PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = PipelineCreateFlagBits 0x20000000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" pattern PIPELINE_CREATE_LIBRARY_BIT_KHR = PipelineCreateFlagBits 0x00000800 @@ -371,6 +381,10 @@   ,     ( PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT     , "RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"+    )+  ,+    ( PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT+    , "DESCRIPTOR_BUFFER_BIT_EXT"     )   ,     ( PIPELINE_CREATE_LIBRARY_BIT_KHR
src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs view
@@ -3,6 +3,7 @@ module Vulkan.Core10.Enums.SamplerCreateFlagBits  ( SamplerCreateFlags                                                   , SamplerCreateFlagBits( SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM                                                                          , SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT+                                                                         , SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT                                                                          , SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT                                                                          , SAMPLER_CREATE_SUBSAMPLED_BIT_EXT                                                                          , ..@@ -55,6 +56,13 @@ -- is not performed. pattern SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = SamplerCreateFlagBits 0x00000004 +-- | 'SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' specifies that+-- the sampler /can/ be used with descriptor buffers when capturing and+-- replaying (e.g. for trace capture and replay), see+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+-- for more detail.+pattern SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = SamplerCreateFlagBits 0x00000008+ -- | 'SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT' specifies that -- the implementation /may/ use approximations when reconstructing a full -- color value for texture access from a subsampled image.@@ -81,6 +89,10 @@   ,     ( SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT     , "NON_SEAMLESS_CUBE_MAP_BIT_EXT"+    )+  ,+    ( SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT+    , "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"     )   ,     ( SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -187,6 +187,19 @@                                                         , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+                                                        , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT+                                                        , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT+                                                        , STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+                                                        , STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+                                                        , STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+                                                        , STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+                                                        , STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT+                                                        , STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV                                                         , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV                                                         , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT@@ -682,6 +695,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildGeometryInfoKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildSizesInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.AccelerationStructureCaptureDescriptorDataInfoEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureDeviceAddressInfoKHR',@@ -721,6 +735,7 @@ -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHR VkBindVideoSessionMemoryInfoKHR>, -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.BufferCaptureDescriptorDataInfoEXT', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionConstraintsInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionCreateInfoFUCHSIA',@@ -781,6 +796,10 @@ -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorAddressInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingPushDescriptorBufferHandleEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorGetInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo', -- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo', -- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo',@@ -879,6 +898,7 @@ -- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateInfoMVK', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageCaptureDescriptorDataInfoEXT', -- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT', -- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageConstraintsInfoFUCHSIA',@@ -902,6 +922,7 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageViewCaptureDescriptorDataInfoEXT', -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX', -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT',@@ -956,6 +977,7 @@ -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX', -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT', -- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowExecuteInfoNV', -- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatInfoNV', -- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatPropertiesNV',@@ -1000,6 +1022,9 @@ -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties', -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE',@@ -1282,6 +1307,7 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2', -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.SamplerCaptureDescriptorDataInfoEXT', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo',@@ -1966,6 +1992,45 @@ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = StructureType 1000320000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316009++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT"+pattern STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = StructureType 1000316012++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT"+pattern STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = StructureType 1000316011++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = StructureType 1000316010++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+pattern STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316008++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+pattern STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316007++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+pattern STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+pattern STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT"+pattern STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = StructureType 1000316004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT"+pattern STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = StructureType 1000316003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = StructureType 1000316002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = StructureType 1000316001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = StructureType 1000316000+ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV" pattern STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = StructureType 1000314009 @@ -3582,6 +3647,19 @@   , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT   , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT   , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+  , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT+  , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT+  , STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT+  , STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+  , STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+  , STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+  , STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+  , STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT+  , STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT   , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV   , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV   , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT@@ -4804,6 +4882,58 @@   ,     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT     , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+    , "ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT+    , "DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT+    , "DESCRIPTOR_BUFFER_BINDING_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT+    , "OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+    , "SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+    , "IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+    , "IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT+    , "BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT+    , "DESCRIPTOR_GET_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT+    , "DESCRIPTOR_ADDRESS_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT+    , "PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT"     )   ,     ( STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -454,6 +454,8 @@ -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties', -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE',@@ -844,6 +846,7 @@ -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorAddressInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT',@@ -862,6 +865,7 @@ -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildInfoEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',@@ -907,10 +911,13 @@ -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD', -- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutBindingOffsetEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutSizeEXT', -- 'Vulkan.Core10.Memory.getDeviceMemoryCommitment', -- 'Vulkan.Core10.Query.getQueryPoolResults', -- 'Vulkan.Core10.Memory.mapMemory'@@ -929,6 +936,9 @@ -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorAddressInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR',
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -72,6 +72,9 @@ -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorAddressInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR',@@ -116,6 +119,7 @@ -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorAddressInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT',@@ -134,6 +138,7 @@ -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildInfoEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',@@ -179,10 +184,13 @@ -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD', -- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutBindingOffsetEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutSizeEXT', -- 'Vulkan.Core10.Memory.getDeviceMemoryCommitment', -- 'Vulkan.Core10.Query.getQueryPoolResults', -- 'Vulkan.Core10.Memory.mapMemory'
src/Vulkan/Core10/Handles.hs view
@@ -343,6 +343,7 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.getAccelerationStructureDeviceAddressKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.getAccelerationStructureHandleNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.getAccelerationStructureMemoryRequirementsNV',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getAccelerationStructureOpaqueCaptureDescriptorDataEXT', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.getBufferCollectionPropertiesFUCHSIA', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress',@@ -353,11 +354,15 @@ -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2KHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferOpaqueCaptureAddress', -- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getBufferOpaqueCaptureAddressKHR',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getBufferOpaqueCaptureDescriptorDataEXT', -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getCalibratedTimestampsEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationMaxConcurrencyKHR', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationResultKHR',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorEXT', -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.getDescriptorSetHostMappingVALVE',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutBindingOffsetEXT', -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.getDescriptorSetLayoutHostMappingInfoVALVE',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutSizeEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.getDescriptorSetLayoutSupport', -- 'Vulkan.Extensions.VK_KHR_maintenance3.getDescriptorSetLayoutSupportKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.getDeviceAccelerationStructureCompatibilityKHR',@@ -392,6 +397,7 @@ -- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageMemoryRequirements2KHR',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getImageOpaqueCaptureDescriptorDataEXT', -- 'Vulkan.Core10.SparseResourceMemoryManagement.getImageSparseMemoryRequirements', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2KHR',@@ -399,6 +405,7 @@ -- 'Vulkan.Extensions.VK_EXT_image_compression_control.getImageSubresourceLayout2EXT', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewAddressNVX', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewHandleNVX',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getImageViewOpaqueCaptureDescriptorDataEXT', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getMemoryAndroidHardwareBufferANDROID', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdPropertiesKHR',@@ -426,6 +433,7 @@ -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingShaderGroupStackSizeKHR', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getRefreshCycleDurationGOOGLE', -- 'Vulkan.Core10.Pass.getRenderAreaGranularity',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getSamplerOpaqueCaptureDescriptorDataEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.getSemaphoreCounterValue', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.getSemaphoreCounterValueKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.getSemaphoreFdKHR',@@ -555,6 +563,8 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR>,+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI',@@ -696,6 +706,7 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdSetDeviceMask', -- 'Vulkan.Extensions.VK_KHR_device_group.cmdSetDeviceMaskKHR', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT',@@ -853,6 +864,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.BufferCaptureDescriptorDataInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferDeviceAddressInfo', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2',@@ -863,6 +875,7 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingPushDescriptorBufferHandleEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',@@ -948,6 +961,7 @@ -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV', -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT', -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageCaptureDescriptorDataInfoEXT', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2',@@ -990,6 +1004,7 @@ -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo', -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT', -- 'Vulkan.Core10.Pass.FramebufferCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageViewCaptureDescriptorDataInfoEXT', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo',@@ -1077,10 +1092,12 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', -- 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout', -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout' newtype PipelineLayout = PipelineLayout Word64@@ -1097,9 +1114,11 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorDataEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo', -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.SamplerCaptureDescriptorDataInfoEXT', -- 'Vulkan.Core10.Sampler.createSampler', -- 'Vulkan.Core10.Sampler.destroySampler' newtype Sampler = Sampler Word64@@ -1143,7 +1162,9 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo', -- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo', -- 'Vulkan.Core10.DescriptorSet.createDescriptorSetLayout',--- 'Vulkan.Core10.DescriptorSet.destroyDescriptorSetLayout'+-- 'Vulkan.Core10.DescriptorSet.destroyDescriptorSetLayout',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutBindingOffsetEXT',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutSizeEXT' newtype DescriptorSetLayout = DescriptorSetLayout Word64   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle)
src/Vulkan/Core10/Image.hs view
@@ -90,6 +90,7 @@ import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalIOSurfaceInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalTextureInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (OpaqueCaptureDescriptorDataCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatInfoNV) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..))@@ -161,6 +162,8 @@ -- --     -   'Vulkan.Core10.Enums.Result.ERROR_COMPRESSION_EXHAUSTED_EXT' --+--     -   'Vulkan.Extensions.VK_KHR_buffer_device_address.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR'+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,@@ -1376,7 +1379,9 @@ --     @samples@ /must/ be --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' ----- -   #VUID-VkImageCreateInfo-tiling-02084# If @usage@ includes+-- -   #VUID-VkImageCreateInfo-shadingRateImage-07727# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     feature is enabled and @usage@ includes --     'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV', --     @tiling@ /must/ be --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'@@ -1511,6 +1516,17 @@ --     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT' --     structure --+-- -   #VUID-VkImageCreateInfo-flags-08104# If @flags@ includes+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',+--     the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-VkImageCreateInfo-pNext-08105# If the @pNext@ chain includes a+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+--     structure, @flags@ /must/ contain+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+-- -- -   #VUID-VkImageCreateInfo-pNext-06783# If the @pNext@ chain includes a --     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT' --     structure, its @exportObjectType@ member /must/ be either@@ -1563,6 +1579,7 @@ --     'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR', --     'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalIOSurfaceInfoEXT', --     'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT',+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT', --     'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatInfoNV', --     or --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>@@ -1686,6 +1703,7 @@     | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f     | Just Refl <- eqT @e @ImageCompressionControlEXT = Just f     | Just Refl <- eqT @e @BufferCollectionImageCreateInfoFUCHSIA = Just f+    | Just Refl <- eqT @e @OpaqueCaptureDescriptorDataCreateInfoEXT = Just f     | Just Refl <- eqT @e @ImageStencilUsageCreateInfo = Just f     | Just Refl <- eqT @e @ImageDrmFormatModifierExplicitCreateInfoEXT = Just f     | Just Refl <- eqT @e @ImageDrmFormatModifierListCreateInfoEXT = Just f
src/Vulkan/Core10/ImageView.hs view
@@ -75,6 +75,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (ImageViewSampleWeightCreateInfoQCOM) import Vulkan.Core10.Enums.ImageViewType (ImageViewType) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (ImageViewUsageCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (OpaqueCaptureDescriptorDataCreateInfoEXT) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -128,6 +129,8 @@ -- --     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' --+--     -   'Vulkan.Extensions.VK_KHR_buffer_device_address.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR'+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,@@ -1206,6 +1209,18 @@ --     members of @components@ /must/ have the --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> --+-- -   #VUID-VkImageViewCreateInfo-flags-08106# If @flags@ includes+--     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',+--     the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-VkImageViewCreateInfo-pNext-08107# If the @pNext@ chain+--     includes a+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+--     structure, @flags@ /must/ contain+--     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+-- -- -   #VUID-VkImageViewCreateInfo-pNext-06787# If the @pNext@ chain --     includes a --     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'@@ -1330,6 +1345,7 @@ --     'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT', --     'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM', --     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo',+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT', --     or --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' --@@ -1406,6 +1422,7 @@     | Just Refl <- eqT @e @ImageViewSampleWeightCreateInfoQCOM = Just f     | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f     | Just Refl <- eqT @e @ImageViewMinLodCreateInfoEXT = Just f+    | Just Refl <- eqT @e @OpaqueCaptureDescriptorDataCreateInfoEXT = Just f     | Just Refl <- eqT @e @ImageViewASTCDecodeModeEXT = Just f     | Just Refl <- eqT @e @SamplerYcbcrConversionInfo = Just f     | Just Refl <- eqT @e @ImageViewUsageCreateInfo = Just f
src/Vulkan/Core10/MemoryManagement.hs view
@@ -227,6 +227,15 @@ --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA' --     chained to 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@pNext@ --+-- -   #VUID-vkBindBufferMemory-descriptorBufferCaptureReplay-08112# If the+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT'+--     ::@descriptorBufferCaptureReplay@ feature is enabled and @buffer@+--     was created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--     bit set, @memory@ /must/ have been allocated with the+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'+--     bit set+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkBindBufferMemory-device-parameter# @device@ /must/ be a@@ -470,6 +479,15 @@ --     /must/ also have been set in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'::@handleTypes@ --     when @image@ was created+--+-- -   #VUID-vkBindImageMemory-descriptorBufferCaptureReplay-08113# If the+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT'+--     ::@descriptorBufferCaptureReplay@ feature is enabled and @image@ was+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--     bit set, @memory@ /must/ have been allocated with the+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'+--     bit set -- -- -   #VUID-vkBindImageMemory-image-01608# @image@ /must/ not have been --     created with the
src/Vulkan/Core10/Pipeline.hs view
@@ -3982,6 +3982,41 @@ --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST', --     @pStages@ /must/ include tessellation shader stages --+-- -   #VUID-VkGraphicsPipelineCreateInfo-Vertex-07722# If the pipeline is+--     being created with a @Vertex@ @Execution@ @Model@ and no+--     @TessellationEvaluation@ or @Geometry@ @Execution@ @Model@, and the+--     @topology@ member of @pInputAssembly@ is+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',+--     a @PointSize@ decorated variable /must/ be written to+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723# If+--     the pipeline is being created with a @TessellationEvaluation@+--     @Execution@ @Model@, no @Geometry@ @Execution@ @Model@, uses the+--     @PointMode@ @Execution@ @Mode@, and+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>+--     is enabled, a @PointSize@ decorated variable /must/ be written to+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724# If+--     the pipeline is being created with a @TessellationEvaluation@+--     @Execution@ @Model@, no @Geometry@ @Execution@ @Model@, uses the+--     @PointMode@ @Execution@ @Mode@, and+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>+--     is not enabled, a @PointSize@ decorated variable /must/ not be+--     written to+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-Geometry-07725# If the pipeline+--     is being created with a @Geometry@ @Execution@ @Model@, uses the+--     @OutputPoints@ @Execution@ @Mode@, and+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>+--     is enabled, a @PointSize@ decorated variable /must/ be written to+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-Geometry-07726# If the pipeline+--     is being created with a @Geometry@ @Execution@ @Model@, uses the+--     @OutputPoints@ @Execution@ @Mode@, and+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>+--     is not enabled, a @PointSize@ decorated variable /must/ not be+--     written to+-- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline is --     being created with --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
src/Vulkan/Core10/PipelineLayout.hs view
@@ -688,6 +688,14 @@ --     is not enabled, elements of @pSetLayouts@ /must/ be valid --     'Vulkan.Core10.Handles.DescriptorSetLayout' objects --+-- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-08008# If any element+--     of @pSetLayouts@ was created with the+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--     bit set, all elements of @pSetLayouts@ /must/ have been created with+--     the+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--     bit set+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkPipelineLayoutCreateInfo-sType-sType# @sType@ /must/ be
src/Vulkan/Core10/Sampler.hs view
@@ -69,6 +69,7 @@ import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.Enums.Filter (Filter)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (OpaqueCaptureDescriptorDataCreateInfoEXT) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -140,6 +141,8 @@ -- --     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' --+--     -   'Vulkan.Extensions.VK_KHR_buffer_device_address.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR'+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,@@ -503,6 +506,18 @@ --     'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT' --     structure --+-- -   #VUID-VkSamplerCreateInfo-flags-08110# If @flags@ includes+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',+--     the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-VkSamplerCreateInfo-pNext-08111# If the @pNext@ chain includes+--     a+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+--     structure, @flags@ /must/ contain+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+-- -- -   #VUID-VkSamplerCreateInfo-flags-06964# If @flags@ includes --     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM', --     then @minFilter@ and @magFilter@ /must/ be@@ -549,6 +564,7 @@ -- -   #VUID-VkSamplerCreateInfo-pNext-pNext# Each @pNext@ member of any --     structure (including this one) in the @pNext@ chain /must/ be either --     @NULL@ or a pointer to a valid instance of+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT', --     'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT', --     'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT', --     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo',@@ -705,6 +721,7 @@   getNext SamplerCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SamplerCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @OpaqueCaptureDescriptorDataCreateInfoEXT = Just f     | Just Refl <- eqT @e @SamplerBorderColorComponentMappingCreateInfoEXT = Just f     | Just Refl <- eqT @e @SamplerCustomBorderColorCreateInfoEXT = Just f     | Just Refl <- eqT @e @SamplerReductionModeCreateInfo = Just f
src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs view
@@ -333,6 +333,16 @@ --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA' --     chained to 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@pNext@ --+-- -   #VUID-VkBindBufferMemoryInfo-descriptorBufferCaptureReplay-08112# If+--     the+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT'+--     ::@descriptorBufferCaptureReplay@ feature is enabled and @buffer@+--     was created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--     bit set, @memory@ /must/ have been allocated with the+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'+--     bit set+-- -- -   #VUID-VkBindBufferMemoryInfo-pNext-01605# If the @pNext@ chain --     includes a --     'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindBufferMemoryDeviceGroupInfo'@@ -541,6 +551,16 @@ --     /must/ also have been set in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'::@handleTypes@ --     when @image@ was created+--+-- -   #VUID-VkBindImageMemoryInfo-descriptorBufferCaptureReplay-08113# If+--     the+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT'+--     ::@descriptorBufferCaptureReplay@ feature is enabled and @image@ was+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--     bit set, @memory@ /must/ have been allocated with the+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'+--     bit set -- -- -   #VUID-VkBindImageMemoryInfo-pNext-01615# If the @pNext@ chain does --     not include a
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -398,13 +398,44 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDispatchBase-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDispatchBase-None-08114# Descriptors in each bound --     descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchBase-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchBase-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchBase-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchBase-None-08119# If a descriptor is dynamically+--     used with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdDispatchBase-None-02700# A valid pipeline /must/ be bound --     to the pipeline bind point used by this command
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -127,6 +127,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (PhysicalDeviceDepthStencilResolveProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)@@ -874,6 +877,7 @@     | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeatures = Just f+    | Just Refl <- eqT @e @PhysicalDeviceDescriptorBufferFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f@@ -1044,6 +1048,8 @@ --     'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectPropertiesNV', --     'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties',+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT', --     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties', --     'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesNV', --     'Vulkan.Extensions.VK_EXT_discard_rectangles.PhysicalDeviceDiscardRectanglePropertiesEXT',@@ -1148,6 +1154,8 @@     | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceDrmPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductProperties = Just f+    | Just Refl <- eqT @e @PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceDescriptorBufferPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRatePropertiesKHR = Just f
src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs view
@@ -96,7 +96,11 @@ -- the purposes of counting against limits such as @maxDescriptorSet@* and -- @maxPerStageDescriptor@*, the full value of @descriptorCount@ is -- counted, except for descriptor bindings with a descriptor type of--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'.+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK',+-- when+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo'::@flags@+-- does not contain+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'. -- In this case, @descriptorCount@ specifies the upper bound on the byte -- size of the binding; thus it counts against the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformBlockSize maxInlineUniformBlockSize>
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -173,14 +173,46 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawIndirectCount-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDrawIndirectCount-None-08114# Descriptors in each bound --     descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDrawIndirectCount-None-08115# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirectCount-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirectCount-None-08117# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirectCount-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDrawIndirectCount-None-02700# A valid pipeline /must/ be --     bound to the pipeline bind point used by this command --@@ -1986,13 +2018,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-02699# Descriptors in each+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08114# Descriptors in each --     bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08115# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08117# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-02700# A valid pipeline --     /must/ be bound to the pipeline bind point used by this command
src/Vulkan/Core13/Enums/AccessFlags2.hs view
@@ -49,6 +49,7 @@                                                           , ACCESS_2_MICROMAP_READ_BIT_EXT                                                           , ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR                                                           , ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI+                                                          , ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT                                                           , ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT                                                           , ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT                                                           , ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR@@ -407,6 +408,11 @@ -- pipeline stage. pattern ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = AccessFlagBits2 0x0000008000000000 +-- | 'ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT' specifies read access to a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorbuffers descriptor buffer>+-- in any shader pipeline stage.+pattern ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = AccessFlagBits2 0x0000020000000000+ -- | 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read -- access to -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>,@@ -577,6 +583,10 @@   ,     ( ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI     , "INVOCATION_MASK_READ_BIT_HUAWEI"+    )+  ,+    ( ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT+    , "DESCRIPTOR_BUFFER_READ_BIT_EXT"     )   ,     ( ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs view
@@ -1800,6 +1800,14 @@ --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' --+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-08118# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+-- -- -   #VUID-VkMemoryBarrier2-dstStageMask-03929# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> --     feature is not enabled, @dstStageMask@ /must/ not contain@@ -2176,6 +2184,14 @@ --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' --+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-08118# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkMemoryBarrier2-sType-sType# @sType@ /must/ be@@ -2732,6 +2748,14 @@ --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' --+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-08118# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+-- -- -   #VUID-VkImageMemoryBarrier2-dstStageMask-03929# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> --     feature is not enabled, @dstStageMask@ /must/ not contain@@ -3108,6 +3132,14 @@ --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' --+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-08118# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+-- -- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01486# --     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@ --     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was@@ -4043,6 +4075,14 @@ --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' --+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-08118# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+-- -- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-03929# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> --     feature is not enabled, @dstStageMask@ /must/ not contain@@ -4418,6 +4458,14 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-08118# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages -- -- -   #VUID-VkBufferMemoryBarrier2-offset-01187# @offset@ /must/ be less --     than the size of @buffer@
src/Vulkan/Dynamic.hs view
@@ -30,6 +30,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildRangeInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildSizesInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildTypeKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (AccelerationStructureCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCompatibilityKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (AccelerationStructureCreateInfoNV)@@ -52,6 +53,7 @@ import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BlitImageInfo2) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Bool32) import {-# SOURCE #-} Vulkan.Core10.Handles (Buffer)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (BufferCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionCreateInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.Handles (BufferCollectionFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionPropertiesFUCHSIA)@@ -128,6 +130,8 @@ import {-# SOURCE #-} Vulkan.Extensions.Handles (DeferredOperationKHR) import {-# SOURCE #-} Vulkan.Core10.Enums.DependencyFlagBits (DependencyFlags) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorGetInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Handles (DescriptorPool) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.DescriptorPoolResetFlags (DescriptorPoolResetFlags)@@ -206,6 +210,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.Handles (Image) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (ImageCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImageConstraintsInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageCopy) import {-# SOURCE #-} Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)@@ -228,6 +233,7 @@ import {-# SOURCE #-} Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags) import {-# SOURCE #-} Vulkan.Core10.Handles (ImageView) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_image_view_handle (ImageViewAddressPropertiesNVX)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (ImageViewCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageViewCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_image_view_handle (ImageViewHandleInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_fd (ImportFenceFdInfoKHR)@@ -352,6 +358,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (SampleMask) import {-# SOURCE #-} Vulkan.Core10.Handles (Sampler)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (SamplerCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Handles (SamplerYcbcrConversion) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo)@@ -1060,7 +1067,7 @@   , pVkCmdDrawMeshTasksIndirectEXT :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ())   , pVkCmdDrawMeshTasksIndirectCountEXT :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ())   , pVkCompileDeferredNV :: FunPtr (Ptr Device_T -> Pipeline -> ("shader" ::: Word32) -> IO Result)-  , pVkCreateAccelerationStructureNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr AccelerationStructureCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result)+  , pVkCreateAccelerationStructureNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct AccelerationStructureCreateInfoNV)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result)   , pVkCmdBindInvocationMaskHUAWEI :: FunPtr (Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ())   , pVkDestroyAccelerationStructureKHR :: FunPtr (Ptr Device_T -> AccelerationStructureKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkDestroyAccelerationStructureNV :: FunPtr (Ptr Device_T -> AccelerationStructureNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())@@ -1201,6 +1208,17 @@   , pVkDestroyCuModuleNVX :: FunPtr (Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkDestroyCuFunctionNVX :: FunPtr (Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkCmdCuLaunchKernelNVX :: FunPtr (Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CuLaunchInfoNVX) -> IO ())+  , pVkGetDescriptorSetLayoutSizeEXT :: FunPtr (Ptr Device_T -> DescriptorSetLayout -> ("pLayoutSizeInBytes" ::: Ptr DeviceSize) -> IO ())+  , pVkGetDescriptorSetLayoutBindingOffsetEXT :: FunPtr (Ptr Device_T -> DescriptorSetLayout -> ("binding" ::: Word32) -> ("pOffset" ::: Ptr DeviceSize) -> IO ())+  , pVkGetDescriptorEXT :: FunPtr (Ptr Device_T -> ("pDescriptorInfo" ::: Ptr DescriptorGetInfoEXT) -> ("dataSize" ::: CSize) -> ("pDescriptor" ::: Ptr ()) -> IO ())+  , pVkCmdBindDescriptorBuffersEXT :: FunPtr (Ptr CommandBuffer_T -> ("bufferCount" ::: Word32) -> ("pBindingInfos" ::: Ptr (SomeStruct DescriptorBufferBindingInfoEXT)) -> IO ())+  , pVkCmdSetDescriptorBufferOffsetsEXT :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> ("firstSet" ::: Word32) -> ("setCount" ::: Word32) -> ("pBufferIndices" ::: Ptr Word32) -> ("pOffsets" ::: Ptr DeviceSize) -> IO ())+  , pVkCmdBindDescriptorBufferEmbeddedSamplersEXT :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> ("set" ::: Word32) -> IO ())+  , pVkGetBufferOpaqueCaptureDescriptorDataEXT :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr BufferCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result)+  , pVkGetImageOpaqueCaptureDescriptorDataEXT :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr ImageCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result)+  , pVkGetImageViewOpaqueCaptureDescriptorDataEXT :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr ImageViewCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result)+  , pVkGetSamplerOpaqueCaptureDescriptorDataEXT :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr SamplerCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result)+  , pVkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr AccelerationStructureCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result)   , pVkSetDeviceMemoryPriorityEXT :: FunPtr (Ptr Device_T -> DeviceMemory -> ("priority" ::: CFloat) -> IO ())   , pVkWaitForPresentKHR :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("presentId" ::: Word64) -> ("timeout" ::: Word64) -> IO Result)   , pVkCreateBufferCollectionFUCHSIA :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr BufferCollectionCreateInfoFUCHSIA) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCollection" ::: Ptr BufferCollectionFUCHSIA) -> IO Result)@@ -1668,7 +1686,15 @@     nullFunPtr     nullFunPtr     nullFunPtr-    nullFunPtr nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -2143,6 +2169,17 @@   vkDestroyCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuModuleNVX"#)   vkDestroyCuFunctionNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuFunctionNVX"#)   vkCmdCuLaunchKernelNVX <- getDeviceProcAddr' handle (Ptr "vkCmdCuLaunchKernelNVX"#)+  vkGetDescriptorSetLayoutSizeEXT <- getDeviceProcAddr' handle (Ptr "vkGetDescriptorSetLayoutSizeEXT"#)+  vkGetDescriptorSetLayoutBindingOffsetEXT <- getDeviceProcAddr' handle (Ptr "vkGetDescriptorSetLayoutBindingOffsetEXT"#)+  vkGetDescriptorEXT <- getDeviceProcAddr' handle (Ptr "vkGetDescriptorEXT"#)+  vkCmdBindDescriptorBuffersEXT <- getDeviceProcAddr' handle (Ptr "vkCmdBindDescriptorBuffersEXT"#)+  vkCmdSetDescriptorBufferOffsetsEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDescriptorBufferOffsetsEXT"#)+  vkCmdBindDescriptorBufferEmbeddedSamplersEXT <- getDeviceProcAddr' handle (Ptr "vkCmdBindDescriptorBufferEmbeddedSamplersEXT"#)+  vkGetBufferOpaqueCaptureDescriptorDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetBufferOpaqueCaptureDescriptorDataEXT"#)+  vkGetImageOpaqueCaptureDescriptorDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetImageOpaqueCaptureDescriptorDataEXT"#)+  vkGetImageViewOpaqueCaptureDescriptorDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetImageViewOpaqueCaptureDescriptorDataEXT"#)+  vkGetSamplerOpaqueCaptureDescriptorDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetSamplerOpaqueCaptureDescriptorDataEXT"#)+  vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT"#)   vkSetDeviceMemoryPriorityEXT <- getDeviceProcAddr' handle (Ptr "vkSetDeviceMemoryPriorityEXT"#)   vkWaitForPresentKHR <- getDeviceProcAddr' handle (Ptr "vkWaitForPresentKHR"#)   vkCreateBufferCollectionFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkCreateBufferCollectionFUCHSIA"#)@@ -2430,7 +2467,7 @@     (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) vkCmdDrawMeshTasksIndirectEXT)     (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) vkCmdDrawMeshTasksIndirectCountEXT)     (castFunPtr @_ @(Ptr Device_T -> Pipeline -> ("shader" ::: Word32) -> IO Result) vkCompileDeferredNV)-    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr AccelerationStructureCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result) vkCreateAccelerationStructureNV)+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct AccelerationStructureCreateInfoNV)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result) vkCreateAccelerationStructureNV)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ()) vkCmdBindInvocationMaskHUAWEI)     (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyAccelerationStructureKHR)     (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyAccelerationStructureNV)@@ -2571,6 +2608,17 @@     (castFunPtr @_ @(Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuModuleNVX)     (castFunPtr @_ @(Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuFunctionNVX)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CuLaunchInfoNVX) -> IO ()) vkCmdCuLaunchKernelNVX)+    (castFunPtr @_ @(Ptr Device_T -> DescriptorSetLayout -> ("pLayoutSizeInBytes" ::: Ptr DeviceSize) -> IO ()) vkGetDescriptorSetLayoutSizeEXT)+    (castFunPtr @_ @(Ptr Device_T -> DescriptorSetLayout -> ("binding" ::: Word32) -> ("pOffset" ::: Ptr DeviceSize) -> IO ()) vkGetDescriptorSetLayoutBindingOffsetEXT)+    (castFunPtr @_ @(Ptr Device_T -> ("pDescriptorInfo" ::: Ptr DescriptorGetInfoEXT) -> ("dataSize" ::: CSize) -> ("pDescriptor" ::: Ptr ()) -> IO ()) vkGetDescriptorEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("bufferCount" ::: Word32) -> ("pBindingInfos" ::: Ptr (SomeStruct DescriptorBufferBindingInfoEXT)) -> IO ()) vkCmdBindDescriptorBuffersEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> ("firstSet" ::: Word32) -> ("setCount" ::: Word32) -> ("pBufferIndices" ::: Ptr Word32) -> ("pOffsets" ::: Ptr DeviceSize) -> IO ()) vkCmdSetDescriptorBufferOffsetsEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> ("set" ::: Word32) -> IO ()) vkCmdBindDescriptorBufferEmbeddedSamplersEXT)+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr BufferCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result) vkGetBufferOpaqueCaptureDescriptorDataEXT)+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr ImageCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result) vkGetImageOpaqueCaptureDescriptorDataEXT)+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr ImageViewCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result) vkGetImageViewOpaqueCaptureDescriptorDataEXT)+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr SamplerCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result) vkGetSamplerOpaqueCaptureDescriptorDataEXT)+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr AccelerationStructureCaptureDescriptorDataInfoEXT) -> ("pData" ::: Ptr ()) -> IO Result) vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)     (castFunPtr @_ @(Ptr Device_T -> DeviceMemory -> ("priority" ::: CFloat) -> IO ()) vkSetDeviceMemoryPriorityEXT)     (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("presentId" ::: Word64) -> ("timeout" ::: Word64) -> IO Result) vkWaitForPresentKHR)     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr BufferCollectionCreateInfoFUCHSIA) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCollection" ::: Ptr BufferCollectionFUCHSIA) -> IO Result) vkCreateBufferCollectionFUCHSIA)
src/Vulkan/Extensions.hs view
@@ -47,6 +47,7 @@                           , module Vulkan.Extensions.VK_EXT_depth_clip_control                           , module Vulkan.Extensions.VK_EXT_depth_clip_enable                           , module Vulkan.Extensions.VK_EXT_depth_range_unrestricted+                          , module Vulkan.Extensions.VK_EXT_descriptor_buffer                           , module Vulkan.Extensions.VK_EXT_descriptor_indexing                           , module Vulkan.Extensions.VK_EXT_device_address_binding_report                           , module Vulkan.Extensions.VK_EXT_device_fault@@ -352,6 +353,7 @@ import Vulkan.Extensions.VK_EXT_depth_clip_control import Vulkan.Extensions.VK_EXT_depth_clip_enable import Vulkan.Extensions.VK_EXT_depth_range_unrestricted+import Vulkan.Extensions.VK_EXT_descriptor_buffer import Vulkan.Extensions.VK_EXT_descriptor_indexing import Vulkan.Extensions.VK_EXT_device_address_binding_report import Vulkan.Extensions.VK_EXT_device_fault
src/Vulkan/Extensions/Dependencies.hs view
@@ -30,6 +30,7 @@ import Vulkan.Extensions.VK_EXT_debug_report (pattern EXT_DEBUG_REPORT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_debug_utils (pattern EXT_DEBUG_UTILS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_depth_clip_control (pattern EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_descriptor_buffer (pattern EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_descriptor_indexing (pattern EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_device_address_binding_report (pattern EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_device_fault (pattern EXT_DEVICE_FAULT_EXTENSION_NAME)@@ -630,6 +631,13 @@     ]   NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_SYNCHRONIZATION_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME ->+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+    , KHR_SYNCHRONIZATION_2_EXTENSION_NAME+    , EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+    , KHR_MAINTENANCE_3_EXTENSION_NAME+    ]   EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME ->     [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     , KHR_PIPELINE_LIBRARY_EXTENSION_NAME@@ -860,6 +868,7 @@   KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0   NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0   KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  EXT_MESH_SHADER_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0   KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0   KHR_MAINTENANCE_4_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0   _ -> API_VERSION_1_0
src/Vulkan/Extensions/Handles.hs view
@@ -144,6 +144,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildGeometryInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.AccelerationStructureCaptureDescriptorDataInfoEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureDeviceAddressInfoKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureInfoKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureToMemoryInfoKHR',@@ -169,6 +170,7 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>,+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.AccelerationStructureCaptureDescriptorDataInfoEXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureMemoryRequirementsInfoNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV',
+ src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs view
@@ -0,0 +1,3310 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_descriptor_buffer - device extension+--+-- == VK_EXT_descriptor_buffer+--+-- [__Name String__]+--     @VK_EXT_descriptor_buffer@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     317+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+--     -   Requires @VK_KHR_buffer_device_address@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_KHR_synchronization2@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_EXT_descriptor_indexing@ to be enabled for any+--         device-level functionality+--+-- [__Contact__]+--+--     -   Tobias Hector+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_descriptor_buffer] @tobski%0A*Here describe the issue or question you have about the VK_EXT_descriptor_buffer extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_descriptor_buffer.adoc VK_EXT_descriptor_buffer>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-06-07+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Tobias Hector, AMD+--+--     -   Stu Smith, AMD+--+--     -   Maciej Jesionowski, AMD+--+--     -   Boris Zanin, AMD+--+--     -   Hans-Kristian Arntzen, Valve+--+--     -   Connor Abbott, Valve+--+--     -   Baldur Karlsson, Valve+--+--     -   Mike Blumenkrantz, Valve+--+--     -   Graeme Leese, Broadcom+--+--     -   Jan-Harald Fredriksen, Arm+--+--     -   Rodrigo Locatti, NVIDIA+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Piers Daniell, NVIDIA+--+--     -   Jeff Leger, QUALCOMM+--+--     -   Lionel Landwerlin, Intel+--+--     -   Slawomir Grajewski, Intel+--+-- == Description+--+-- This extension introduces new commands to put shader-accessible+-- descriptors directly in memory, making the management of descriptor data+-- more explicit.+--+-- == New Commands+--+-- -   'cmdBindDescriptorBufferEmbeddedSamplersEXT'+--+-- -   'cmdBindDescriptorBuffersEXT'+--+-- -   'cmdSetDescriptorBufferOffsetsEXT'+--+-- -   'getBufferOpaqueCaptureDescriptorDataEXT'+--+-- -   'getDescriptorEXT'+--+-- -   'getDescriptorSetLayoutBindingOffsetEXT'+--+-- -   'getDescriptorSetLayoutSizeEXT'+--+-- -   'getImageOpaqueCaptureDescriptorDataEXT'+--+-- -   'getImageViewOpaqueCaptureDescriptorDataEXT'+--+-- -   'getSamplerOpaqueCaptureDescriptorDataEXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>+-- is supported:+--+-- -   'getAccelerationStructureOpaqueCaptureDescriptorDataEXT'+--+-- == New Structures+--+-- -   'BufferCaptureDescriptorDataInfoEXT'+--+-- -   'DescriptorAddressInfoEXT'+--+-- -   'DescriptorBufferBindingInfoEXT'+--+-- -   'DescriptorGetInfoEXT'+--+-- -   'ImageCaptureDescriptorDataInfoEXT'+--+-- -   'ImageViewCaptureDescriptorDataInfoEXT'+--+-- -   'SamplerCaptureDescriptorDataInfoEXT'+--+-- -   Extending 'Vulkan.Core10.Buffer.BufferCreateInfo',+--     'Vulkan.Core10.Image.ImageCreateInfo',+--     'Vulkan.Core10.ImageView.ImageViewCreateInfo',+--     'Vulkan.Core10.Sampler.SamplerCreateInfo',+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR',+--     'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV':+--+--     -   'OpaqueCaptureDescriptorDataCreateInfoEXT'+--+-- -   Extending 'DescriptorBufferBindingInfoEXT':+--+--     -   'DescriptorBufferBindingPushDescriptorBufferHandleEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceDescriptorBufferFeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT'+--+--     -   'PhysicalDeviceDescriptorBufferPropertiesEXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>+-- is supported:+--+-- -   'AccelerationStructureCaptureDescriptorDataInfoEXT'+--+-- == New Unions+--+-- -   'DescriptorDataEXT'+--+-- == New Enum Constants+--+-- -   'EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME'+--+-- -   'EXT_DESCRIPTOR_BUFFER_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateFlagBitsKHR':+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits':+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.ImageViewCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SamplerCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>+-- is supported:+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+-- == Version History+--+-- -   Revision 1, 2021-06-07 (Stu Smith)+--+--     -   Initial revision+--+-- == See Also+--+-- 'BufferCaptureDescriptorDataInfoEXT', 'DescriptorAddressInfoEXT',+-- 'DescriptorBufferBindingInfoEXT',+-- 'DescriptorBufferBindingPushDescriptorBufferHandleEXT',+-- 'DescriptorDataEXT', 'DescriptorGetInfoEXT',+-- 'ImageCaptureDescriptorDataInfoEXT',+-- 'ImageViewCaptureDescriptorDataInfoEXT',+-- 'OpaqueCaptureDescriptorDataCreateInfoEXT',+-- 'PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',+-- 'PhysicalDeviceDescriptorBufferFeaturesEXT',+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT',+-- 'SamplerCaptureDescriptorDataInfoEXT',+-- 'cmdBindDescriptorBufferEmbeddedSamplersEXT',+-- 'cmdBindDescriptorBuffersEXT', 'cmdSetDescriptorBufferOffsetsEXT',+-- 'getBufferOpaqueCaptureDescriptorDataEXT', 'getDescriptorEXT',+-- 'getDescriptorSetLayoutBindingOffsetEXT',+-- 'getDescriptorSetLayoutSizeEXT',+-- 'getImageOpaqueCaptureDescriptorDataEXT',+-- 'getImageViewOpaqueCaptureDescriptorDataEXT',+-- 'getSamplerOpaqueCaptureDescriptorDataEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_descriptor_buffer Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_descriptor_buffer  ( getDescriptorSetLayoutSizeEXT+                                                   , getDescriptorSetLayoutBindingOffsetEXT+                                                   , getDescriptorEXT+                                                   , cmdBindDescriptorBuffersEXT+                                                   , cmdSetDescriptorBufferOffsetsEXT+                                                   , cmdBindDescriptorBufferEmbeddedSamplersEXT+                                                   , getBufferOpaqueCaptureDescriptorDataEXT+                                                   , getImageOpaqueCaptureDescriptorDataEXT+                                                   , getImageViewOpaqueCaptureDescriptorDataEXT+                                                   , getSamplerOpaqueCaptureDescriptorDataEXT+                                                   , getAccelerationStructureOpaqueCaptureDescriptorDataEXT+                                                   , PhysicalDeviceDescriptorBufferFeaturesEXT(..)+                                                   , PhysicalDeviceDescriptorBufferPropertiesEXT(..)+                                                   , PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(..)+                                                   , DescriptorAddressInfoEXT(..)+                                                   , DescriptorBufferBindingInfoEXT(..)+                                                   , DescriptorBufferBindingPushDescriptorBufferHandleEXT(..)+                                                   , DescriptorGetInfoEXT(..)+                                                   , BufferCaptureDescriptorDataInfoEXT(..)+                                                   , ImageCaptureDescriptorDataInfoEXT(..)+                                                   , ImageViewCaptureDescriptorDataInfoEXT(..)+                                                   , SamplerCaptureDescriptorDataInfoEXT(..)+                                                   , AccelerationStructureCaptureDescriptorDataInfoEXT(..)+                                                   , OpaqueCaptureDescriptorDataCreateInfoEXT(..)+                                                   , DescriptorDataEXT(..)+                                                   , peekDescriptorDataEXT+                                                   , EXT_DESCRIPTOR_BUFFER_SPEC_VERSION+                                                   , pattern EXT_DESCRIPTOR_BUFFER_SPEC_VERSION+                                                   , EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME+                                                   , pattern EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME+                                                   , AccelerationStructureKHR(..)+                                                   , AccelerationStructureNV(..)+                                                   , AccelerationStructureCreateFlagBitsKHR(..)+                                                   , AccelerationStructureCreateFlagsKHR+                                                   ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import Foreign.Marshal.Utils (maybePeek)+import Foreign.Marshal.Utils (with)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (castPtr)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Data.Coerce (coerce)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Control.Monad.Trans.Cont (runContT)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Foreign.C.Types (CSize(..))+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Type.Equality ((:~:)(Refl))+import Data.Typeable (Typeable)+import Foreign.C.Types (CSize)+import Foreign.C.Types (CSize(..))+import Foreign.C.Types (CSize(CSize))+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Word (Word64)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.CStruct.Extends (pokeSomeCStruct)+import Vulkan.NamedType ((:::))+import Vulkan.Extensions.Handles (AccelerationStructureKHR)+import Vulkan.Extensions.Handles (AccelerationStructureNV)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Buffer)+import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags)+import Vulkan.CStruct.Extends (Chain)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Core10.DescriptorSet (DescriptorImageInfo)+import Vulkan.Core10.Handles (DescriptorSetLayout)+import Vulkan.Core10.Handles (DescriptorSetLayout(..))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Core10.FundamentalTypes (DeviceAddress)+import Vulkan.Dynamic (DeviceCmds(pVkCmdBindDescriptorBufferEmbeddedSamplersEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdBindDescriptorBuffersEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDescriptorBufferOffsetsEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetBufferOpaqueCaptureDescriptorDataEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetDescriptorEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetDescriptorSetLayoutBindingOffsetEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetDescriptorSetLayoutSizeEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetImageOpaqueCaptureDescriptorDataEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetImageViewOpaqueCaptureDescriptorDataEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetSamplerOpaqueCaptureDescriptorDataEXT))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Handles (Device_T)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.Enums.Format (Format)+import Vulkan.Core10.Handles (Image)+import Vulkan.Core10.Handles (ImageView)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)+import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint(..))+import Vulkan.Core10.Handles (PipelineLayout)+import Vulkan.Core10.Handles (PipelineLayout(..))+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Handles (Sampler)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_INPUT_ATTACHMENT))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_SAMPLED_IMAGE))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_SAMPLER))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_STORAGE_BUFFER))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_STORAGE_IMAGE))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_UNIFORM_BUFFER))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCreateFlagBitsKHR(..))+import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCreateFlagsKHR)+import Vulkan.Extensions.Handles (AccelerationStructureKHR(..))+import Vulkan.Extensions.Handles (AccelerationStructureNV(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetDescriptorSetLayoutSizeEXT+  :: FunPtr (Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceSize -> IO ()) -> Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceSize -> IO ()++-- | vkGetDescriptorSetLayoutSizeEXT - Get the size of a descriptor set+-- layout in memory+--+-- = Description+--+-- The size of a descriptor set layout will be at least as large as the sum+-- total of the size of all descriptors in the layout, and /may/ be larger.+-- This size represents the amount of memory that will be required to store+-- all of the descriptors for this layout in memory, when placed according+-- to the layout’s offsets as obtained by+-- 'getDescriptorSetLayoutBindingOffsetEXT'.+--+-- If any @binding@ in @layout@ is+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT',+-- the returned size includes space for the maximum @descriptorCount@+-- descriptors as declared for that @binding@. To compute the required size+-- of a descriptor set with a+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT':+--+-- -   size = offset + descriptorSize × variableDescriptorCount+--+-- where offset is obtained by 'getDescriptorSetLayoutBindingOffsetEXT' and+-- descriptorSize is the size of the relevant descriptor as obtained from+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT', and+-- variableDescriptorCount is the equivalent of+-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo'::@pDescriptorCounts@.+-- For+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK',+-- variableDescriptorCount is the size in bytes for the inline uniform+-- block, and descriptorSize is 1.+--+-- If+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT'::@combinedImageSamplerDescriptorSingleArray@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE' and the variable descriptor+-- type is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',+-- variableDescriptorCount is always considered to be the upper bound.+--+-- == Valid Usage+--+-- -   #VUID-vkGetDescriptorSetLayoutSizeEXT-None-08011# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBuffer>+--     feature /must/ be enabled+--+-- -   #VUID-vkGetDescriptorSetLayoutSizeEXT-layout-08012# @layout@ /must/+--     have been created with the+--     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameter# @device@+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parameter# @layout@+--     /must/ be a valid 'Vulkan.Core10.Handles.DescriptorSetLayout' handle+--+-- -   #VUID-vkGetDescriptorSetLayoutSizeEXT-pLayoutSizeInBytes-parameter#+--     @pLayoutSizeInBytes@ /must/ be a valid pointer to a+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' value+--+-- -   #VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parent# @layout@ /must/+--     have been created, allocated, or retrieved from @device@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.DescriptorSetLayout',+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+getDescriptorSetLayoutSizeEXT :: forall io+                               . (MonadIO io)+                              => -- | @device@ is the logical device that gets the size.+                                 Device+                              -> -- | @layout@ is the descriptor set layout being queried.+                                 DescriptorSetLayout+                              -> io (("layoutSizeInBytes" ::: DeviceSize))+getDescriptorSetLayoutSizeEXT device layout = liftIO . evalContT $ do+  let vkGetDescriptorSetLayoutSizeEXTPtr = pVkGetDescriptorSetLayoutSizeEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetDescriptorSetLayoutSizeEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDescriptorSetLayoutSizeEXT is null" Nothing Nothing+  let vkGetDescriptorSetLayoutSizeEXT' = mkVkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXTPtr+  pPLayoutSizeInBytes <- ContT $ bracket (callocBytes @DeviceSize 8) free+  lift $ traceAroundEvent "vkGetDescriptorSetLayoutSizeEXT" (vkGetDescriptorSetLayoutSizeEXT'+                                                               (deviceHandle (device))+                                                               (layout)+                                                               (pPLayoutSizeInBytes))+  pLayoutSizeInBytes <- lift $ peek @DeviceSize pPLayoutSizeInBytes+  pure $ (pLayoutSizeInBytes)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetDescriptorSetLayoutBindingOffsetEXT+  :: FunPtr (Ptr Device_T -> DescriptorSetLayout -> Word32 -> Ptr DeviceSize -> IO ()) -> Ptr Device_T -> DescriptorSetLayout -> Word32 -> Ptr DeviceSize -> IO ()++-- | vkGetDescriptorSetLayoutBindingOffsetEXT - Get the offset of a binding+-- within a descriptor set layout+--+-- = Description+--+-- Each binding in a descriptor set layout is assigned an offset in memory+-- by the implementation. When a shader accesses a resource with that+-- binding, it will access the bound descriptor buffer from that offset to+-- look for its descriptor. This command provides an application with that+-- offset, so that descriptors can be placed in the correct locations. The+-- precise location accessed by a shader for a given descriptor is as+-- follows:+--+-- -   location = bufferAddress + setOffset + descriptorOffset+--     (arrayElement * descriptorSize)+--+-- where bufferAddress and setOffset are the base address and offset for+-- the identified descriptor set as specified by+-- 'cmdBindDescriptorBuffersEXT' and 'cmdSetDescriptorBufferOffsetsEXT',+-- descriptorOffset is the offset for the binding returned by this command,+-- arrayElement is the index into the array specified in the shader, and+-- descriptorSize is the size of the relevant descriptor as obtained from+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT'. Applications are+-- responsible for placing valid descriptors at the expected location in+-- order for a shader to access it. The overall offset added to+-- bufferAddress to calculate location /must/ be less than+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxSamplerDescriptorBufferRange@+-- for samplers and+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxResourceDescriptorBufferRange@+-- for resources.+--+-- If any @binding@ in @layout@ is+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT',+-- that @binding@ /must/ have the largest offset of any @binding@.+--+-- A descriptor @binding@ with type+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- /can/ be used. Any potential types in+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE'::@pDescriptorTypes@+-- for @binding@ share the same offset. If the size of the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-mutable mutable descriptor>+-- is larger than the size of a concrete descriptor type being accessed,+-- the padding area is ignored by the implementation.+--+-- == Valid Usage+--+-- -   #VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-None-08013# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBuffer>+--     feature /must/ be enabled+--+-- -   #VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-08014#+--     @layout@ /must/ have been created with the+--     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameter#+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parameter#+--     @layout@ /must/ be a valid+--     'Vulkan.Core10.Handles.DescriptorSetLayout' handle+--+-- -   #VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-pOffset-parameter#+--     @pOffset@ /must/ be a valid pointer to a+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' value+--+-- -   #VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parent#+--     @layout@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.DescriptorSetLayout',+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+getDescriptorSetLayoutBindingOffsetEXT :: forall io+                                        . (MonadIO io)+                                       => -- | @device@ is the logical device that gets the offset.+                                          Device+                                       -> -- | @layout@ is the descriptor set layout being queried.+                                          DescriptorSetLayout+                                       -> -- | @binding@ is the binding number being queried.+                                          ("binding" ::: Word32)+                                       -> io (("offset" ::: DeviceSize))+getDescriptorSetLayoutBindingOffsetEXT device+                                         layout+                                         binding = liftIO . evalContT $ do+  let vkGetDescriptorSetLayoutBindingOffsetEXTPtr = pVkGetDescriptorSetLayoutBindingOffsetEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetDescriptorSetLayoutBindingOffsetEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDescriptorSetLayoutBindingOffsetEXT is null" Nothing Nothing+  let vkGetDescriptorSetLayoutBindingOffsetEXT' = mkVkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXTPtr+  pPOffset <- ContT $ bracket (callocBytes @DeviceSize 8) free+  lift $ traceAroundEvent "vkGetDescriptorSetLayoutBindingOffsetEXT" (vkGetDescriptorSetLayoutBindingOffsetEXT'+                                                                        (deviceHandle (device))+                                                                        (layout)+                                                                        (binding)+                                                                        (pPOffset))+  pOffset <- lift $ peek @DeviceSize pPOffset+  pure $ (pOffset)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetDescriptorEXT+  :: FunPtr (Ptr Device_T -> Ptr DescriptorGetInfoEXT -> CSize -> Ptr () -> IO ()) -> Ptr Device_T -> Ptr DescriptorGetInfoEXT -> CSize -> Ptr () -> IO ()++-- | vkGetDescriptorEXT - To get a descriptor to place in a buffer+--+-- = Description+--+-- The size of the data for each descriptor type is determined by the value+-- in 'PhysicalDeviceDescriptorBufferPropertiesEXT'. This value also+-- defines the stride in bytes for arrays of that descriptor type.+--+-- If the+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT'::@combinedImageSamplerDescriptorSingleArray@+-- property is 'Vulkan.Core10.FundamentalTypes.FALSE' the implementation+-- requires an array of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'+-- descriptors to be written into a descriptor buffer as an array of image+-- descriptors, immediately followed by an array of sampler descriptors.+-- Applications /must/ write the first+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT'::@sampledImageDescriptorSize@+-- bytes of the data returned through @pDescriptor@ to the first array, and+-- the remaining+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT'::@samplerDescriptorSize@+-- bytes of the data to the second array. For variable-sized descriptor+-- bindings of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'+-- descriptors, the two arrays each have a size equal to the upper bound+-- @descriptorCount@ of that binding.+--+-- A descriptor obtained by this command references the underlying+-- 'Vulkan.Core10.Handles.ImageView' or 'Vulkan.Core10.Handles.Sampler',+-- and these objects /must/ not be destroyed before the last time a+-- descriptor is dynamically accessed. For descriptor types which consume+-- an address instead of an object, the underlying+-- 'Vulkan.Core10.Handles.Buffer' is referenced instead.+--+-- == Valid Usage+--+-- -   #VUID-vkGetDescriptorEXT-None-08015# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBuffer>+--     feature /must/ be enabled+--+-- -   #VUID-vkGetDescriptorEXT-dataSize-08125# @dataSize@ /must/ equal the+--     size of a descriptor of type 'DescriptorGetInfoEXT'::@type@+--     determined by the value in+--     'PhysicalDeviceDescriptorBufferPropertiesEXT', or+--     'PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT'::@combinedImageSamplerDensityMapDescriptorSize@+--     if @pDescriptorInfo@ specifies a+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'+--     whose 'Vulkan.Core10.Handles.Sampler' was created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_BIT_EXT'+--     set+--+-- -   #VUID-vkGetDescriptorEXT-pDescriptor-08016# @pDescriptor@ /must/ be+--     a valid pointer to an array of at least @dataSize@ bytes+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetDescriptorEXT-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetDescriptorEXT-pDescriptorInfo-parameter#+--     @pDescriptorInfo@ /must/ be a valid pointer to a valid+--     'DescriptorGetInfoEXT' structure+--+-- -   #VUID-vkGetDescriptorEXT-pDescriptor-parameter# @pDescriptor@ /must/+--     be a valid pointer to an array of @dataSize@ bytes+--+-- -   #VUID-vkGetDescriptorEXT-dataSize-arraylength# @dataSize@ /must/ be+--     greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'DescriptorGetInfoEXT', 'Vulkan.Core10.Handles.Device'+getDescriptorEXT :: forall io+                  . (MonadIO io)+                 => -- | @device@ is the logical device that gets the descriptor.+                    Device+                 -> -- | @pDescriptorInfo@ is a pointer to a 'DescriptorGetInfoEXT' structure+                    -- specifying the parameters of the descriptor to get.+                    ("descriptorInfo" ::: DescriptorGetInfoEXT)+                 -> -- | @dataSize@ is the amount of the descriptor data to get in bytes.+                    ("dataSize" ::: Word64)+                 -> -- | @pDescriptor@ is a pointer to a user-allocated buffer where the+                    -- descriptor will be written.+                    ("descriptor" ::: Ptr ())+                 -> io ()+getDescriptorEXT device+                   descriptorInfo+                   dataSize+                   descriptor = liftIO . evalContT $ do+  let vkGetDescriptorEXTPtr = pVkGetDescriptorEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetDescriptorEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDescriptorEXT is null" Nothing Nothing+  let vkGetDescriptorEXT' = mkVkGetDescriptorEXT vkGetDescriptorEXTPtr+  pDescriptorInfo <- ContT $ withCStruct (descriptorInfo)+  lift $ traceAroundEvent "vkGetDescriptorEXT" (vkGetDescriptorEXT'+                                                  (deviceHandle (device))+                                                  pDescriptorInfo+                                                  (CSize (dataSize))+                                                  (descriptor))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBindDescriptorBuffersEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (SomeStruct DescriptorBufferBindingInfoEXT) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (SomeStruct DescriptorBufferBindingInfoEXT) -> IO ()++-- | vkCmdBindDescriptorBuffersEXT - Binding descriptor buffers to a command+-- buffer+--+-- = Description+--+-- 'cmdBindDescriptorBuffersEXT' causes any offsets previously set by+-- 'cmdSetDescriptorBufferOffsetsEXT' that use the bindings numbered [@0@..+-- @bufferCount@-1] to be no longer valid for subsequent bound pipeline+-- commands. Any previously bound buffers at binding points greater than or+-- equal to @bufferCount@ are unbound.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-None-08047# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBuffer>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-maxSamplerDescriptorBufferBindings-08048#+--     There /must/ be no more than+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxSamplerDescriptorBufferBindings@+--     descriptor buffers containing sampler descriptor data bound+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049#+--     There /must/ be no more than+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxResourceDescriptorBufferBindings@+--     descriptor buffers containing resource descriptor data bound+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-None-08050# There /must/ be no+--     more than @1@ descriptor buffer bound that was created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-08051# @bufferCount@+--     /must/ be less than or equal to+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxDescriptorBufferBindings@+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08052# For any+--     element of @pBindingInfos@, if the buffer from which @address@ was+--     queried is non-sparse then it /must/ be bound completely and+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08053# For any+--     element of @pBindingInfos@, the buffer from which @address@ was+--     queried /must/ have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'+--     bit set if it contains sampler descriptor data+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08054# For any+--     element of @pBindingInfos@, the buffer from which @address@ was+--     queried /must/ have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'+--     bit set if it contains resource descriptor data+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08055# For any+--     element of @pBindingInfos@, @usage@ /must/ match the buffer from+--     which @address@ was queried.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-parameter#+--     @pBindingInfos@ /must/ be a valid pointer to an array of+--     @bufferCount@ valid 'DescriptorBufferBindingInfoEXT' structures+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-arraylength#+--     @bufferCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'DescriptorBufferBindingInfoEXT'+cmdBindDescriptorBuffersEXT :: forall io+                             . (MonadIO io)+                            => -- | @commandBuffer@ is the command buffer that the descriptor buffers will+                               -- be bound to.+                               CommandBuffer+                            -> -- | @pBindingInfos@ is a pointer to an array of+                               -- 'DescriptorBufferBindingInfoEXT' structures.+                               ("bindingInfos" ::: Vector (SomeStruct DescriptorBufferBindingInfoEXT))+                            -> io ()+cmdBindDescriptorBuffersEXT commandBuffer bindingInfos = liftIO . evalContT $ do+  let vkCmdBindDescriptorBuffersEXTPtr = pVkCmdBindDescriptorBuffersEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBindDescriptorBuffersEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindDescriptorBuffersEXT is null" Nothing Nothing+  let vkCmdBindDescriptorBuffersEXT' = mkVkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXTPtr+  pPBindingInfos <- ContT $ allocaBytes @(DescriptorBufferBindingInfoEXT _) ((Data.Vector.length (bindingInfos)) * 32)+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBindingInfos `plusPtr` (32 * (i)) :: Ptr (DescriptorBufferBindingInfoEXT _))) (e) . ($ ())) (bindingInfos)+  lift $ traceAroundEvent "vkCmdBindDescriptorBuffersEXT" (vkCmdBindDescriptorBuffersEXT'+                                                             (commandBufferHandle (commandBuffer))+                                                             ((fromIntegral (Data.Vector.length $ (bindingInfos)) :: Word32))+                                                             (forgetExtensions (pPBindingInfos)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDescriptorBufferOffsetsEXT+  :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr Word32 -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr Word32 -> Ptr DeviceSize -> IO ()++-- | vkCmdSetDescriptorBufferOffsetsEXT - Setting descriptor buffer offsets+-- in a command buffer+--+-- = Description+--+-- 'cmdSetDescriptorBufferOffsetsEXT' binds @setCount@ pairs of descriptor+-- buffers, specified by indices into the binding points bound using+-- 'cmdBindDescriptorBuffersEXT', and buffer offsets to set numbers+-- [@firstSet@..@firstSet@+@descriptorSetCount@-1] for subsequent+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>+-- set by @pipelineBindPoint@. Set [@firstSet@ + i] is bound to the+-- descriptor buffer at binding @pBufferIndices@[i] at an offset of+-- @pOffsets@[i]. Any bindings that were previously applied via these sets,+-- or calls to 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets',+-- are no longer valid. Other sets will also be invalidated upon calling+-- this command if @layout@ differs from the pipeline layout used to bind+-- those other sets, as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+--+-- After binding descriptors, applications /can/ modify descriptor memory+-- either by performing writes on the host or with device commands. When+-- descriptor memory is updated with device commands, visibility for the+-- shader stage accessing a descriptor is ensured with the+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT'+-- access flag. Implementations /must/ not access resources referenced by+-- these descriptors unless they are dynamically accessed by shaders.+-- Descriptors bound with this call /can/ be undefined if they are not+-- dynamically accessed by shaders.+--+-- Implementations /may/ read descriptor data for any statically accessed+-- descriptor if the @binding@ in @layout@ is not declared with the+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT'+-- flag. If the @binding@ in @layout@ is declared with+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT',+-- implementations /must/ not read descriptor data that is not dynamically+-- accessed.+--+-- Applications /must/ ensure that any descriptor which the implementation+-- /may/ read /must/ be in-bounds of the underlying descriptor buffer+-- binding.+--+-- Note+--+-- Applications can freely decide how large a variable descriptor buffer+-- binding is, so it may not be safe to read such descriptor payloads+-- statically. The intention of these rules is to allow implementations to+-- speculatively prefetch descriptor payloads where feasible.+--+-- Dynamically accessing a resource through descriptor data from an unbound+-- region of a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-partially-resident-buffers sparse partially-resident buffer>+-- will result in invalid descriptor data being read, and therefore+-- undefined behavior.+--+-- Note+--+-- For descriptors written by the host, visibility is implied through the+-- automatic visibility operation on queue submit, and there is no need to+-- consider @VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT@. Explicit+-- synchronization for descriptors is only required when descriptors are+-- updated on the device.+--+-- Note+--+-- The requirements above imply that all descriptor bindings have been+-- defined with the equivalent of+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT',+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT'+-- and+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT',+-- but enabling those features is not required to get this behavior.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-None-08060# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBuffer>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08061# The offsets+--     in @pOffsets@ /must/ be aligned to+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@descriptorBufferOffsetAlignment@+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063# The offsets+--     in @pOffsets@ /must/ be small enough such that any descriptor+--     binding referenced by @layout@ without the+--     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT'+--     flag computes a valid address inside the underlying+--     'Vulkan.Core10.Handles.Buffer'+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08126# The offsets+--     in @pOffsets@ /must/ be small enough such that any location accessed+--     by a shader as a sampler descriptor /must/ be within+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxSamplerDescriptorBufferRange@+--     of the sampler descriptor buffer binding+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08127# The offsets+--     in @pOffsets@ /must/ be small enough such that any location accessed+--     by a shader as a resource descriptor /must/ be within+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxResourceDescriptorBufferRange@+--     of the resource descriptor buffer binding+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08064# Each+--     element of @pBufferIndices@ /must/ be less than+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxDescriptorBufferBindings@+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08065# Each+--     element of @pBufferIndices@ /must/ reference a valid descriptor+--     buffer binding set by a previous call to+--     'cmdBindDescriptorBuffersEXT' in @commandBuffer@+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-08066# The sum of+--     @firstSet@ and @setCount@ /must/ be less than or equal to+--     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@+--     provided when @layout@ was created+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-08067#+--     @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s+--     parent 'Vulkan.Core10.Handles.CommandPool'’s queue family+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-parameter#+--     @pipelineBindPoint@ /must/ be a valid+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-layout-parameter# @layout@+--     /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout' handle+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-parameter#+--     @pBufferIndices@ /must/ be a valid pointer to an array of @setCount@+--     @uint32_t@ values+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-parameter#+--     @pOffsets@ /must/ be a valid pointer to an array of @setCount@+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-setCount-arraylength#+--     @setCount@ /must/ be greater than @0@+--+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-commonparent# Both of+--     @commandBuffer@, and @layout@ /must/ have been created, allocated,+--     or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',+-- 'Vulkan.Core10.Handles.PipelineLayout'+cmdSetDescriptorBufferOffsetsEXT :: forall io+                                  . (MonadIO io)+                                 => -- | @commandBuffer@ is the command buffer in which the descriptor buffer+                                    -- offsets will be set.+                                    CommandBuffer+                                 -> -- | @pipelineBindPoint@ is a+                                    -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' indicating the+                                    -- type of the pipeline that will use the descriptors.+                                    PipelineBindPoint+                                 -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to+                                    -- program the bindings.+                                    PipelineLayout+                                 -> -- | @firstSet@ is the number of the first set to be bound.+                                    ("firstSet" ::: Word32)+                                 -> -- | @pBufferIndices@ is a pointer to an array of indices into the descriptor+                                    -- buffer binding points set by 'cmdBindDescriptorBuffersEXT'.+                                    ("bufferIndices" ::: Vector Word32)+                                 -> -- | @pOffsets@ is a pointer to an array of+                                    -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' offsets to apply to the+                                    -- bound descriptor buffers.+                                    ("offsets" ::: Vector DeviceSize)+                                 -> io ()+cmdSetDescriptorBufferOffsetsEXT commandBuffer+                                   pipelineBindPoint+                                   layout+                                   firstSet+                                   bufferIndices+                                   offsets = liftIO . evalContT $ do+  let vkCmdSetDescriptorBufferOffsetsEXTPtr = pVkCmdSetDescriptorBufferOffsetsEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetDescriptorBufferOffsetsEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDescriptorBufferOffsetsEXT is null" Nothing Nothing+  let vkCmdSetDescriptorBufferOffsetsEXT' = mkVkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXTPtr+  let pBufferIndicesLength = Data.Vector.length $ (bufferIndices)+  lift $ unless ((Data.Vector.length $ (offsets)) == pBufferIndicesLength) $+    throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBufferIndices must have the same length" Nothing Nothing+  pPBufferIndices <- ContT $ allocaBytes @Word32 ((Data.Vector.length (bufferIndices)) * 4)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferIndices `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (bufferIndices)+  pPOffsets <- ContT $ allocaBytes @DeviceSize ((Data.Vector.length (offsets)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) (offsets)+  lift $ traceAroundEvent "vkCmdSetDescriptorBufferOffsetsEXT" (vkCmdSetDescriptorBufferOffsetsEXT'+                                                                  (commandBufferHandle (commandBuffer))+                                                                  (pipelineBindPoint)+                                                                  (layout)+                                                                  (firstSet)+                                                                  ((fromIntegral pBufferIndicesLength :: Word32))+                                                                  (pPBufferIndices)+                                                                  (pPOffsets))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBindDescriptorBufferEmbeddedSamplersEXT+  :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> IO ()++-- | vkCmdBindDescriptorBufferEmbeddedSamplersEXT - Setting embedded+-- immutable samplers offsets in a command buffer+--+-- = Description+--+-- 'cmdBindDescriptorBufferEmbeddedSamplersEXT' binds the embedded+-- immutable samplers in @set@ of @layout@ to @set@ for the command buffer+-- for subsequent+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>+-- set by @pipelineBindPoint@. Any previous binding to this set by+-- 'cmdSetDescriptorBufferOffsetsEXT' or this command is overwritten. Any+-- sets that were last bound by a call to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets' are+-- invalidated upon calling this command. Other sets will also be+-- invalidated upon calling this command if @layout@ differs from the+-- pipeline layout used to bind those other sets, as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-None-08068# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBuffer>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-08069#+--     @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s+--     parent 'Vulkan.Core10.Handles.CommandPool'’s queue family+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08070# The+--     'Vulkan.Core10.Handles.DescriptorSetLayout' at index @set@ when+--     @layout@ was created /must/ have been created with the+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08071# @set@+--     /must/ be less than or equal to+--     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@+--     provided when @layout@ was created+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-parameter#+--     @pipelineBindPoint@ /must/ be a valid+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-layout-parameter#+--     @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout'+--     handle+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-cmdpool#+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-videocoding# This+--     command /must/ only be called outside of a video coding scope+--+-- -   #VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commonparent#+--     Both of @commandBuffer@, and @layout@ /must/ have been created,+--     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',+-- 'Vulkan.Core10.Handles.PipelineLayout'+cmdBindDescriptorBufferEmbeddedSamplersEXT :: forall io+                                            . (MonadIO io)+                                           => -- | @commandBuffer@ is the command buffer that the embedded immutable+                                              -- samplers will be bound to.+                                              CommandBuffer+                                           -> -- | @pipelineBindPoint@ is a+                                              -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' indicating the+                                              -- type of the pipeline that will use the embedded immutable samplers.+                                              PipelineBindPoint+                                           -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to+                                              -- program the bindings.+                                              PipelineLayout+                                           -> -- | @set@ is the number of the set to be bound.+                                              ("set" ::: Word32)+                                           -> io ()+cmdBindDescriptorBufferEmbeddedSamplersEXT commandBuffer+                                             pipelineBindPoint+                                             layout+                                             set = liftIO $ do+  let vkCmdBindDescriptorBufferEmbeddedSamplersEXTPtr = pVkCmdBindDescriptorBufferEmbeddedSamplersEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdBindDescriptorBufferEmbeddedSamplersEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindDescriptorBufferEmbeddedSamplersEXT is null" Nothing Nothing+  let vkCmdBindDescriptorBufferEmbeddedSamplersEXT' = mkVkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXTPtr+  traceAroundEvent "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" (vkCmdBindDescriptorBufferEmbeddedSamplersEXT'+                                                                     (commandBufferHandle (commandBuffer))+                                                                     (pipelineBindPoint)+                                                                     (layout)+                                                                     (set))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetBufferOpaqueCaptureDescriptorDataEXT+  :: FunPtr (Ptr Device_T -> Ptr BufferCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr BufferCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result++-- | vkGetBufferOpaqueCaptureDescriptorDataEXT - Get buffer opaque capture+-- descriptor data+--+-- == Valid Usage+--+-- -   #VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-08073# @pData@+--     /must/ point to a buffer that is at least+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@bufferCaptureReplayDescriptorDataSize@+--     bytes in size+--+-- -   #VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-08074# If+--     @device@ was created with multiple physical devices, then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameter#+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pInfo-parameter#+--     @pInfo@ /must/ be a valid pointer to a valid+--     'BufferCaptureDescriptorDataInfoEXT' structure+--+-- -   #VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-parameter#+--     @pData@ /must/ be a pointer value+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'BufferCaptureDescriptorDataInfoEXT', 'Vulkan.Core10.Handles.Device'+getBufferOpaqueCaptureDescriptorDataEXT :: forall io+                                         . (MonadIO io)+                                        => -- | @device@ is the logical device that gets the data.+                                           Device+                                        -> -- | @pInfo@ is a pointer to a 'BufferCaptureDescriptorDataInfoEXT' structure+                                           -- specifying the buffer.+                                           BufferCaptureDescriptorDataInfoEXT+                                        -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be+                                           -- written.+                                           ("data" ::: Ptr ())+                                        -> io ()+getBufferOpaqueCaptureDescriptorDataEXT device+                                          info+                                          data' = liftIO . evalContT $ do+  let vkGetBufferOpaqueCaptureDescriptorDataEXTPtr = pVkGetBufferOpaqueCaptureDescriptorDataEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetBufferOpaqueCaptureDescriptorDataEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetBufferOpaqueCaptureDescriptorDataEXT is null" Nothing Nothing+  let vkGetBufferOpaqueCaptureDescriptorDataEXT' = mkVkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXTPtr+  pInfo <- ContT $ withCStruct (info)+  r <- lift $ traceAroundEvent "vkGetBufferOpaqueCaptureDescriptorDataEXT" (vkGetBufferOpaqueCaptureDescriptorDataEXT'+                                                                              (deviceHandle (device))+                                                                              pInfo+                                                                              (data'))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetImageOpaqueCaptureDescriptorDataEXT+  :: FunPtr (Ptr Device_T -> Ptr ImageCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr ImageCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result++-- | vkGetImageOpaqueCaptureDescriptorDataEXT - Get image opaque capture+-- descriptor data+--+-- == Valid Usage+--+-- -   #VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-08077# @pData@+--     /must/ point to a buffer that is at least+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@imageCaptureReplayDescriptorDataSize@+--     bytes in size+--+-- -   #VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-08078# If+--     @device@ was created with multiple physical devices, then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameter#+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pInfo-parameter#+--     @pInfo@ /must/ be a valid pointer to a valid+--     'ImageCaptureDescriptorDataInfoEXT' structure+--+-- -   #VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-parameter#+--     @pData@ /must/ be a pointer value+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.Device', 'ImageCaptureDescriptorDataInfoEXT'+getImageOpaqueCaptureDescriptorDataEXT :: forall io+                                        . (MonadIO io)+                                       => -- | @device@ is the logical device that gets the data.+                                          Device+                                       -> -- | @pInfo@ is a pointer to a 'ImageCaptureDescriptorDataInfoEXT' structure+                                          -- specifying the image.+                                          ImageCaptureDescriptorDataInfoEXT+                                       -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be+                                          -- written.+                                          ("data" ::: Ptr ())+                                       -> io ()+getImageOpaqueCaptureDescriptorDataEXT device+                                         info+                                         data' = liftIO . evalContT $ do+  let vkGetImageOpaqueCaptureDescriptorDataEXTPtr = pVkGetImageOpaqueCaptureDescriptorDataEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetImageOpaqueCaptureDescriptorDataEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageOpaqueCaptureDescriptorDataEXT is null" Nothing Nothing+  let vkGetImageOpaqueCaptureDescriptorDataEXT' = mkVkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXTPtr+  pInfo <- ContT $ withCStruct (info)+  r <- lift $ traceAroundEvent "vkGetImageOpaqueCaptureDescriptorDataEXT" (vkGetImageOpaqueCaptureDescriptorDataEXT'+                                                                             (deviceHandle (device))+                                                                             pInfo+                                                                             (data'))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetImageViewOpaqueCaptureDescriptorDataEXT+  :: FunPtr (Ptr Device_T -> Ptr ImageViewCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr ImageViewCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result++-- | vkGetImageViewOpaqueCaptureDescriptorDataEXT - Get image view opaque+-- capture descriptor data+--+-- == Valid Usage+--+-- -   #VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-None-08080# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-08081#+--     @pData@ /must/ point to a buffer that is at least+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@imageViewCaptureReplayDescriptorDataSize@+--     bytes in size+--+-- -   #VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-08082# If+--     @device@ was created with multiple physical devices, then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameter#+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pInfo-parameter#+--     @pInfo@ /must/ be a valid pointer to a valid+--     'ImageViewCaptureDescriptorDataInfoEXT' structure+--+-- -   #VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-parameter#+--     @pData@ /must/ be a pointer value+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.Device', 'ImageViewCaptureDescriptorDataInfoEXT'+getImageViewOpaqueCaptureDescriptorDataEXT :: forall io+                                            . (MonadIO io)+                                           => -- | @device@ is the logical device that gets the data.+                                              Device+                                           -> -- | @pInfo@ is a pointer to a 'ImageViewCaptureDescriptorDataInfoEXT'+                                              -- structure specifying the image view.+                                              ImageViewCaptureDescriptorDataInfoEXT+                                           -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be+                                              -- written.+                                              ("data" ::: Ptr ())+                                           -> io ()+getImageViewOpaqueCaptureDescriptorDataEXT device+                                             info+                                             data' = liftIO . evalContT $ do+  let vkGetImageViewOpaqueCaptureDescriptorDataEXTPtr = pVkGetImageViewOpaqueCaptureDescriptorDataEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetImageViewOpaqueCaptureDescriptorDataEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageViewOpaqueCaptureDescriptorDataEXT is null" Nothing Nothing+  let vkGetImageViewOpaqueCaptureDescriptorDataEXT' = mkVkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXTPtr+  pInfo <- ContT $ withCStruct (info)+  r <- lift $ traceAroundEvent "vkGetImageViewOpaqueCaptureDescriptorDataEXT" (vkGetImageViewOpaqueCaptureDescriptorDataEXT'+                                                                                 (deviceHandle (device))+                                                                                 pInfo+                                                                                 (data'))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetSamplerOpaqueCaptureDescriptorDataEXT+  :: FunPtr (Ptr Device_T -> Ptr SamplerCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr SamplerCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result++-- | vkGetSamplerOpaqueCaptureDescriptorDataEXT - Get sampler opaque capture+-- descriptor data+--+-- == Valid Usage+--+-- -   #VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-None-08084# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-08085#+--     @pData@ /must/ point to a buffer that is at least+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@samplerCaptureReplayDescriptorDataSize@+--     bytes in size+--+-- -   #VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-08086# If+--     @device@ was created with multiple physical devices, then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameter#+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pInfo-parameter#+--     @pInfo@ /must/ be a valid pointer to a valid+--     'SamplerCaptureDescriptorDataInfoEXT' structure+--+-- -   #VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-parameter#+--     @pData@ /must/ be a pointer value+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.Device', 'SamplerCaptureDescriptorDataInfoEXT'+getSamplerOpaqueCaptureDescriptorDataEXT :: forall io+                                          . (MonadIO io)+                                         => -- | @device@ is the logical device that gets the data.+                                            Device+                                         -> -- | @pInfo@ is a pointer to a 'SamplerCaptureDescriptorDataInfoEXT'+                                            -- structure specifying the sampler.+                                            SamplerCaptureDescriptorDataInfoEXT+                                         -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be+                                            -- written.+                                            ("data" ::: Ptr ())+                                         -> io ()+getSamplerOpaqueCaptureDescriptorDataEXT device+                                           info+                                           data' = liftIO . evalContT $ do+  let vkGetSamplerOpaqueCaptureDescriptorDataEXTPtr = pVkGetSamplerOpaqueCaptureDescriptorDataEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetSamplerOpaqueCaptureDescriptorDataEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSamplerOpaqueCaptureDescriptorDataEXT is null" Nothing Nothing+  let vkGetSamplerOpaqueCaptureDescriptorDataEXT' = mkVkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXTPtr+  pInfo <- ContT $ withCStruct (info)+  r <- lift $ traceAroundEvent "vkGetSamplerOpaqueCaptureDescriptorDataEXT" (vkGetSamplerOpaqueCaptureDescriptorDataEXT'+                                                                               (deviceHandle (device))+                                                                               pInfo+                                                                               (data'))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT+  :: FunPtr (Ptr Device_T -> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result++-- | vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT - Get+-- acceleration structure opaque capture descriptor data+--+-- == Valid Usage+--+-- -   #VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-None-08088#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-08089#+--     @pData@ /must/ point to a buffer that is at least+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@accelerationStructureCaptureReplayDescriptorDataSize@+--     bytes in size+--+-- -   #VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-08090#+--     If @device@ was created with multiple physical devices, then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameter#+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pInfo-parameter#+--     @pInfo@ /must/ be a valid pointer to a valid+--     'AccelerationStructureCaptureDescriptorDataInfoEXT' structure+--+-- -   #VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-parameter#+--     @pData@ /must/ be a pointer value+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>,+-- 'AccelerationStructureCaptureDescriptorDataInfoEXT',+-- 'Vulkan.Core10.Handles.Device'+getAccelerationStructureOpaqueCaptureDescriptorDataEXT :: forall io+                                                        . (MonadIO io)+                                                       => -- | @device@ is the logical device that gets the data.+                                                          Device+                                                       -> -- | @pInfo@ is a pointer to a+                                                          -- 'AccelerationStructureCaptureDescriptorDataInfoEXT' structure specifying+                                                          -- the acceleration structure.+                                                          AccelerationStructureCaptureDescriptorDataInfoEXT+                                                       -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be+                                                          -- written.+                                                          ("data" ::: Ptr ())+                                                       -> io ()+getAccelerationStructureOpaqueCaptureDescriptorDataEXT device+                                                         info+                                                         data' = liftIO . evalContT $ do+  let vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTPtr = pVkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT is null" Nothing Nothing+  let vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT' = mkVkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTPtr+  pInfo <- ContT $ withCStruct (info)+  r <- lift $ traceAroundEvent "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" (vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT'+                                                                                             (deviceHandle (device))+                                                                                             pInfo+                                                                                             (data'))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++-- | VkPhysicalDeviceDescriptorBufferFeaturesEXT - Structure describing the+-- descriptor buffer features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceDescriptorBufferFeaturesEXT' structure is included+-- in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceDescriptorBufferFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceDescriptorBufferFeaturesEXT = PhysicalDeviceDescriptorBufferFeaturesEXT+  { -- | #features-descriptorBuffer# @descriptorBuffer@ indicates that the+    -- implementation supports putting shader-accessible descriptors directly+    -- in memory.+    descriptorBuffer :: Bool+  , -- | #features-descriptorBufferCaptureReplay# @descriptorBufferCaptureReplay@+    -- indicates that the implementation supports capture and replay when using+    -- descriptor buffers. If this is 'Vulkan.Core10.FundamentalTypes.TRUE',+    -- all resources created with+    -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',+    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',+    -- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',+    -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',+    -- or+    -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+    -- /must/ be created before resources of the same types without those+    -- flags.+    descriptorBufferCaptureReplay :: Bool+  , -- | #features-descriptorBufferImageLayoutIgnored#+    -- @descriptorBufferImageLayoutIgnored@ indicates that the implementation+    -- will ignore @imageLayout@ in+    -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo' when calling+    -- 'getDescriptorEXT'.+    descriptorBufferImageLayoutIgnored :: Bool+  , -- | #features-descriptorBufferPushDescriptors#+    -- @descriptorBufferPushDescriptors@ indicates that the implementation+    -- supports using push descriptors with descriptor buffers.+    descriptorBufferPushDescriptors :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceDescriptorBufferFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceDescriptorBufferFeaturesEXT++instance ToCStruct PhysicalDeviceDescriptorBufferFeaturesEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceDescriptorBufferFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (descriptorBuffer))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (descriptorBufferCaptureReplay))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (descriptorBufferImageLayoutIgnored))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (descriptorBufferPushDescriptors))+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceDescriptorBufferFeaturesEXT where+  peekCStruct p = do+    descriptorBuffer <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    descriptorBufferCaptureReplay <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    descriptorBufferImageLayoutIgnored <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    descriptorBufferPushDescriptors <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+    pure $ PhysicalDeviceDescriptorBufferFeaturesEXT+             (bool32ToBool descriptorBuffer)+             (bool32ToBool descriptorBufferCaptureReplay)+             (bool32ToBool descriptorBufferImageLayoutIgnored)+             (bool32ToBool descriptorBufferPushDescriptors)++instance Storable PhysicalDeviceDescriptorBufferFeaturesEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceDescriptorBufferFeaturesEXT where+  zero = PhysicalDeviceDescriptorBufferFeaturesEXT+           zero+           zero+           zero+           zero+++-- | VkPhysicalDeviceDescriptorBufferPropertiesEXT - Structure describing+-- descriptor buffer properties supported by an implementation+--+-- = Description+--+-- A descriptor binding with type+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- has a descriptor size which is implied by the descriptor types included+-- in the+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE'::@pDescriptorTypes@+-- list. The descriptor size is equal to the maximum size of any descriptor+-- type included in the @pDescriptorTypes@ list.+--+-- As there is no way to request robust and non-robust descriptors+-- separately, or specify robust\/non-robust descriptors in the set layout,+-- if+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- is enabled then robust descriptors are always used.+--+-- If the 'PhysicalDeviceDescriptorBufferPropertiesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceDescriptorBufferPropertiesEXT = PhysicalDeviceDescriptorBufferPropertiesEXT+  { -- | #limits-combinedImageSamplerDescriptorSingleArray#+    -- @combinedImageSamplerDescriptorSingleArray@ indicates that the+    -- implementation does not require an array of+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'+    -- descriptors to be written into a descriptor buffer as an array of image+    -- descriptors, immediately followed by an array of sampler descriptors.+    combinedImageSamplerDescriptorSingleArray :: Bool+  , -- | #limits-bufferlessPushDescriptors# @bufferlessPushDescriptors@ indicates+    -- that the implementation does not require a buffer created with+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'+    -- to be bound when using push descriptors.+    bufferlessPushDescriptors :: Bool+  , -- | #limits-allowSamplerImageViewPostSubmitCreation#+    -- @allowSamplerImageViewPostSubmitCreation@ indicates that the+    -- implementation does not restrict when the+    -- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+    -- objects used to retrieve descriptor data /can/ be created in relation to+    -- command buffer submission. If this value is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the application /must/+    -- create any 'Vulkan.Core10.Handles.Sampler' or+    -- 'Vulkan.Core10.Handles.ImageView' objects whose descriptor data is+    -- accessed during the execution of a command buffer, before the+    -- 'Vulkan.Core10.Queue.queueSubmit' , or+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.queueSubmit2', call+    -- that submits that command buffer.+    allowSamplerImageViewPostSubmitCreation :: Bool+  , -- | #limits-descriptorBufferOffsetAlignment#+    -- @descriptorBufferOffsetAlignment@ indicates the /required/ alignment in+    -- bytes when setting offsets into the descriptor buffer.+    descriptorBufferOffsetAlignment :: DeviceSize+  , -- | #limits-maxDescriptorBufferBindings# @maxDescriptorBufferBindings@+    -- indicates the maximum sum total number of descriptor buffers and+    -- embedded immutable sampler sets that /can/ be bound.+    maxDescriptorBufferBindings :: Word32+  , -- | #limits-maxResourceDescriptorBufferBindings#+    -- @maxResourceDescriptorBufferBindings@ indicates the maximum number of+    -- resource descriptor buffers that /can/ be bound.+    maxResourceDescriptorBufferBindings :: Word32+  , -- | #limits-maxSamplerDescriptorBufferBindings#+    -- @maxSamplerDescriptorBufferBindings@ indicates the maximum number of+    -- sampler descriptor buffers that /can/ be bound.+    maxSamplerDescriptorBufferBindings :: Word32+  , -- | #limits-maxEmbeddedImmutableSamplerBindings#+    -- @maxEmbeddedImmutableSamplerBindings@ indicates the maximum number of+    -- embedded immutable sampler sets that /can/ be bound.+    maxEmbeddedImmutableSamplerBindings :: Word32+  , -- | #limits-maxEmbeddedImmutableSamplers# @maxEmbeddedImmutableSamplers@+    -- indicates the maximum number of unique immutable samplers in descriptor+    -- set layouts created with+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT',+    -- and pipeline layouts created from them, which /can/ simultaneously exist+    -- on a device.+    maxEmbeddedImmutableSamplers :: Word32+  , -- | #limits-bufferCaptureReplayDescriptorDataSize#+    -- @bufferCaptureReplayDescriptorDataSize@ indicates the maximum size in+    -- bytes of the opaque data used for capture and replay with buffers.+    bufferCaptureReplayDescriptorDataSize :: Word64+  , -- | #limits-imageCaptureReplayDescriptorDataSize#+    -- @imageCaptureReplayDescriptorDataSize@ indicates the maximum size in+    -- bytes of the opaque data used for capture and replay with images.+    imageCaptureReplayDescriptorDataSize :: Word64+  , -- | #limits-imageViewCaptureReplayDescriptorDataSize#+    -- @imageViewCaptureReplayDescriptorDataSize@ indicates the maximum size in+    -- bytes of the opaque data used for capture and replay with image views.+    imageViewCaptureReplayDescriptorDataSize :: Word64+  , -- | #limits-samplerCaptureReplayDescriptorDataSize#+    -- @samplerCaptureReplayDescriptorDataSize@ indicates the maximum size in+    -- bytes of the opaque data used for capture and replay with samplers.+    samplerCaptureReplayDescriptorDataSize :: Word64+  , -- | #limits-accelerationStructureCaptureReplayDescriptorDataSize#+    -- @accelerationStructureCaptureReplayDescriptorDataSize@ indicates the+    -- maximum size in bytes of the opaque data used for capture and replay+    -- with acceleration structures.+    accelerationStructureCaptureReplayDescriptorDataSize :: Word64+  , -- | #limits-samplerDescriptorSize# @samplerDescriptorSize@ indicates the+    -- size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER' descriptor.+    samplerDescriptorSize :: Word64+  , -- | #limits-combinedImageSamplerDescriptorSize#+    -- @combinedImageSamplerDescriptorSize@ indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'+    -- descriptor.+    combinedImageSamplerDescriptorSize :: Word64+  , -- | #limits-sampledImageDescriptorSize# @sampledImageDescriptorSize@+    -- indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'+    -- descriptor.+    sampledImageDescriptorSize :: Word64+  , -- | #limits-storageImageDescriptorSize# @storageImageDescriptorSize@+    -- indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'+    -- descriptor.+    storageImageDescriptorSize :: Word64+  , -- | #limits-uniformTexelBufferDescriptorSize#+    -- @uniformTexelBufferDescriptorSize@ indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'+    -- descriptor if the+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+    -- feature is not enabled.+    uniformTexelBufferDescriptorSize :: Word64+  , -- | #limits-robustUniformTexelBufferDescriptorSize#+    -- @robustUniformTexelBufferDescriptorSize@ indicates the size in bytes of+    -- a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'+    -- descriptor if the+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+    -- feature is enabled.+    robustUniformTexelBufferDescriptorSize :: Word64+  , -- | #limits-storageTexelBufferDescriptorSize#+    -- @storageTexelBufferDescriptorSize@ indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+    -- descriptor if the+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+    -- feature is not enabled.+    storageTexelBufferDescriptorSize :: Word64+  , -- | #limits-robustStorageTexelBufferDescriptorSize#+    -- @robustStorageTexelBufferDescriptorSize@ indicates the size in bytes of+    -- a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+    -- descriptor if the+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+    -- feature is enabled.+    robustStorageTexelBufferDescriptorSize :: Word64+  , -- | #limits-uniformBufferDescriptorSize# @uniformBufferDescriptorSize@+    -- indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'+    -- descriptor.+    uniformBufferDescriptorSize :: Word64+  , -- | #limits-robustUniformBufferDescriptorSize#+    -- @robustUniformBufferDescriptorSize@ indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'+    -- descriptor if the+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+    -- feature is enabled.+    robustUniformBufferDescriptorSize :: Word64+  , -- | #limits-storageBufferDescriptorSize# @storageBufferDescriptorSize@+    -- indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'+    -- descriptor.+    storageBufferDescriptorSize :: Word64+  , -- | #limits-robustStorageBufferDescriptorSize#+    -- @robustStorageBufferDescriptorSize@ indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'+    -- descriptor if the+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+    -- feature is enabled.+    robustStorageBufferDescriptorSize :: Word64+  , -- | #limits-inputAttachmentDescriptorSize# @inputAttachmentDescriptorSize@+    -- indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'+    -- descriptor.+    inputAttachmentDescriptorSize :: Word64+  , -- | #limits-accelerationStructureDescriptorSize#+    -- @accelerationStructureDescriptorSize@ indicates the size in bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR'+    -- or+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV'+    -- descriptor.+    accelerationStructureDescriptorSize :: Word64+  , -- | #limits-maxSamplerDescriptorBufferRange#+    -- @maxSamplerDescriptorBufferRange@ indicates the maximum range in bytes+    -- from the address of a sampler descriptor buffer binding that is+    -- accessible to a shader.+    maxSamplerDescriptorBufferRange :: DeviceSize+  , -- | #limits-maxResourceDescriptorBufferRange#+    -- @maxResourceDescriptorBufferRange@ indicates the maximum range in bytes+    -- from the address of a resource descriptor buffer binding that is+    -- accessible to a shader.+    maxResourceDescriptorBufferRange :: DeviceSize+  , -- | #limits-samplerDescriptorBufferAddressSpaceSize#+    -- @samplerDescriptorBufferAddressSpaceSize@ indicates the total size in+    -- bytes of the address space available for descriptor buffers created with+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'.+    samplerDescriptorBufferAddressSpaceSize :: DeviceSize+  , -- | #limits-resourceDescriptorBufferAddressSpaceSize#+    -- @resourceDescriptorBufferAddressSpaceSize@ indicates the total size in+    -- bytes of the address space available for descriptor buffers created with+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'.+    resourceDescriptorBufferAddressSpaceSize :: DeviceSize+  , -- | #limits-descriptorBufferAddressSpaceSize#+    -- @descriptorBufferAddressSpaceSize@ indicates the total size in bytes of+    -- the address space available for descriptor buffers created with both+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'+    -- and+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'.+    descriptorBufferAddressSpaceSize :: DeviceSize+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceDescriptorBufferPropertiesEXT)+#endif+deriving instance Show PhysicalDeviceDescriptorBufferPropertiesEXT++instance ToCStruct PhysicalDeviceDescriptorBufferPropertiesEXT where+  withCStruct x f = allocaBytes 256 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceDescriptorBufferPropertiesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (combinedImageSamplerDescriptorSingleArray))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (bufferlessPushDescriptors))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (allowSamplerImageViewPostSubmitCreation))+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (descriptorBufferOffsetAlignment)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxDescriptorBufferBindings)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (maxResourceDescriptorBufferBindings)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (maxSamplerDescriptorBufferBindings)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (maxEmbeddedImmutableSamplerBindings)+    poke ((p `plusPtr` 56 :: Ptr Word32)) (maxEmbeddedImmutableSamplers)+    poke ((p `plusPtr` 64 :: Ptr CSize)) (CSize (bufferCaptureReplayDescriptorDataSize))+    poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (imageCaptureReplayDescriptorDataSize))+    poke ((p `plusPtr` 80 :: Ptr CSize)) (CSize (imageViewCaptureReplayDescriptorDataSize))+    poke ((p `plusPtr` 88 :: Ptr CSize)) (CSize (samplerCaptureReplayDescriptorDataSize))+    poke ((p `plusPtr` 96 :: Ptr CSize)) (CSize (accelerationStructureCaptureReplayDescriptorDataSize))+    poke ((p `plusPtr` 104 :: Ptr CSize)) (CSize (samplerDescriptorSize))+    poke ((p `plusPtr` 112 :: Ptr CSize)) (CSize (combinedImageSamplerDescriptorSize))+    poke ((p `plusPtr` 120 :: Ptr CSize)) (CSize (sampledImageDescriptorSize))+    poke ((p `plusPtr` 128 :: Ptr CSize)) (CSize (storageImageDescriptorSize))+    poke ((p `plusPtr` 136 :: Ptr CSize)) (CSize (uniformTexelBufferDescriptorSize))+    poke ((p `plusPtr` 144 :: Ptr CSize)) (CSize (robustUniformTexelBufferDescriptorSize))+    poke ((p `plusPtr` 152 :: Ptr CSize)) (CSize (storageTexelBufferDescriptorSize))+    poke ((p `plusPtr` 160 :: Ptr CSize)) (CSize (robustStorageTexelBufferDescriptorSize))+    poke ((p `plusPtr` 168 :: Ptr CSize)) (CSize (uniformBufferDescriptorSize))+    poke ((p `plusPtr` 176 :: Ptr CSize)) (CSize (robustUniformBufferDescriptorSize))+    poke ((p `plusPtr` 184 :: Ptr CSize)) (CSize (storageBufferDescriptorSize))+    poke ((p `plusPtr` 192 :: Ptr CSize)) (CSize (robustStorageBufferDescriptorSize))+    poke ((p `plusPtr` 200 :: Ptr CSize)) (CSize (inputAttachmentDescriptorSize))+    poke ((p `plusPtr` 208 :: Ptr CSize)) (CSize (accelerationStructureDescriptorSize))+    poke ((p `plusPtr` 216 :: Ptr DeviceSize)) (maxSamplerDescriptorBufferRange)+    poke ((p `plusPtr` 224 :: Ptr DeviceSize)) (maxResourceDescriptorBufferRange)+    poke ((p `plusPtr` 232 :: Ptr DeviceSize)) (samplerDescriptorBufferAddressSpaceSize)+    poke ((p `plusPtr` 240 :: Ptr DeviceSize)) (resourceDescriptorBufferAddressSpaceSize)+    poke ((p `plusPtr` 248 :: Ptr DeviceSize)) (descriptorBufferAddressSpaceSize)+    f+  cStructSize = 256+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 64 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 80 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 88 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 96 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 104 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 112 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 120 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 128 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 136 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 144 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 152 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 160 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 168 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 176 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 184 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 192 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 200 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 208 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 216 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 224 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 232 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 240 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 248 :: Ptr DeviceSize)) (zero)+    f++instance FromCStruct PhysicalDeviceDescriptorBufferPropertiesEXT where+  peekCStruct p = do+    combinedImageSamplerDescriptorSingleArray <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    bufferlessPushDescriptors <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    allowSamplerImageViewPostSubmitCreation <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    descriptorBufferOffsetAlignment <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))+    maxDescriptorBufferBindings <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    maxResourceDescriptorBufferBindings <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    maxSamplerDescriptorBufferBindings <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    maxEmbeddedImmutableSamplerBindings <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+    maxEmbeddedImmutableSamplers <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))+    bufferCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 64 :: Ptr CSize))+    imageCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 72 :: Ptr CSize))+    imageViewCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 80 :: Ptr CSize))+    samplerCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 88 :: Ptr CSize))+    accelerationStructureCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 96 :: Ptr CSize))+    samplerDescriptorSize <- peek @CSize ((p `plusPtr` 104 :: Ptr CSize))+    combinedImageSamplerDescriptorSize <- peek @CSize ((p `plusPtr` 112 :: Ptr CSize))+    sampledImageDescriptorSize <- peek @CSize ((p `plusPtr` 120 :: Ptr CSize))+    storageImageDescriptorSize <- peek @CSize ((p `plusPtr` 128 :: Ptr CSize))+    uniformTexelBufferDescriptorSize <- peek @CSize ((p `plusPtr` 136 :: Ptr CSize))+    robustUniformTexelBufferDescriptorSize <- peek @CSize ((p `plusPtr` 144 :: Ptr CSize))+    storageTexelBufferDescriptorSize <- peek @CSize ((p `plusPtr` 152 :: Ptr CSize))+    robustStorageTexelBufferDescriptorSize <- peek @CSize ((p `plusPtr` 160 :: Ptr CSize))+    uniformBufferDescriptorSize <- peek @CSize ((p `plusPtr` 168 :: Ptr CSize))+    robustUniformBufferDescriptorSize <- peek @CSize ((p `plusPtr` 176 :: Ptr CSize))+    storageBufferDescriptorSize <- peek @CSize ((p `plusPtr` 184 :: Ptr CSize))+    robustStorageBufferDescriptorSize <- peek @CSize ((p `plusPtr` 192 :: Ptr CSize))+    inputAttachmentDescriptorSize <- peek @CSize ((p `plusPtr` 200 :: Ptr CSize))+    accelerationStructureDescriptorSize <- peek @CSize ((p `plusPtr` 208 :: Ptr CSize))+    maxSamplerDescriptorBufferRange <- peek @DeviceSize ((p `plusPtr` 216 :: Ptr DeviceSize))+    maxResourceDescriptorBufferRange <- peek @DeviceSize ((p `plusPtr` 224 :: Ptr DeviceSize))+    samplerDescriptorBufferAddressSpaceSize <- peek @DeviceSize ((p `plusPtr` 232 :: Ptr DeviceSize))+    resourceDescriptorBufferAddressSpaceSize <- peek @DeviceSize ((p `plusPtr` 240 :: Ptr DeviceSize))+    descriptorBufferAddressSpaceSize <- peek @DeviceSize ((p `plusPtr` 248 :: Ptr DeviceSize))+    pure $ PhysicalDeviceDescriptorBufferPropertiesEXT+             (bool32ToBool combinedImageSamplerDescriptorSingleArray)+             (bool32ToBool bufferlessPushDescriptors)+             (bool32ToBool allowSamplerImageViewPostSubmitCreation)+             descriptorBufferOffsetAlignment+             maxDescriptorBufferBindings+             maxResourceDescriptorBufferBindings+             maxSamplerDescriptorBufferBindings+             maxEmbeddedImmutableSamplerBindings+             maxEmbeddedImmutableSamplers+             (coerce @CSize @Word64 bufferCaptureReplayDescriptorDataSize)+             (coerce @CSize @Word64 imageCaptureReplayDescriptorDataSize)+             (coerce @CSize @Word64 imageViewCaptureReplayDescriptorDataSize)+             (coerce @CSize @Word64 samplerCaptureReplayDescriptorDataSize)+             (coerce @CSize @Word64 accelerationStructureCaptureReplayDescriptorDataSize)+             (coerce @CSize @Word64 samplerDescriptorSize)+             (coerce @CSize @Word64 combinedImageSamplerDescriptorSize)+             (coerce @CSize @Word64 sampledImageDescriptorSize)+             (coerce @CSize @Word64 storageImageDescriptorSize)+             (coerce @CSize @Word64 uniformTexelBufferDescriptorSize)+             (coerce @CSize @Word64 robustUniformTexelBufferDescriptorSize)+             (coerce @CSize @Word64 storageTexelBufferDescriptorSize)+             (coerce @CSize @Word64 robustStorageTexelBufferDescriptorSize)+             (coerce @CSize @Word64 uniformBufferDescriptorSize)+             (coerce @CSize @Word64 robustUniformBufferDescriptorSize)+             (coerce @CSize @Word64 storageBufferDescriptorSize)+             (coerce @CSize @Word64 robustStorageBufferDescriptorSize)+             (coerce @CSize @Word64 inputAttachmentDescriptorSize)+             (coerce @CSize @Word64 accelerationStructureDescriptorSize)+             maxSamplerDescriptorBufferRange+             maxResourceDescriptorBufferRange+             samplerDescriptorBufferAddressSpaceSize+             resourceDescriptorBufferAddressSpaceSize+             descriptorBufferAddressSpaceSize++instance Storable PhysicalDeviceDescriptorBufferPropertiesEXT where+  sizeOf ~_ = 256+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceDescriptorBufferPropertiesEXT where+  zero = PhysicalDeviceDescriptorBufferPropertiesEXT+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT - Structure+-- describing descriptor buffer density map properties supported by an+-- implementation+--+-- = Description+--+-- If the 'PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT' structure+-- is included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT+  { -- | #limits-combinedImageSamplerDensityMapDescriptorSize#+    -- @combinedImageSamplerDensityMapDescriptorSize@ indicates the size in+    -- bytes of a+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'+    -- descriptor when creating the descriptor with+    -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_BIT_EXT'+    -- set.+    combinedImageSamplerDensityMapDescriptorSize :: Word64 }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)+#endif+deriving instance Show PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT++instance ToCStruct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (combinedImageSamplerDensityMapDescriptorSize))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (zero))+    f++instance FromCStruct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where+  peekCStruct p = do+    combinedImageSamplerDensityMapDescriptorSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))+    pure $ PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT+             (coerce @CSize @Word64 combinedImageSamplerDensityMapDescriptorSize)++instance Storable PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where+  zero = PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT+           zero+++-- | VkDescriptorAddressInfoEXT - Structure specifying descriptor buffer+-- address info+--+-- == Valid Usage+--+-- -   #VUID-VkDescriptorAddressInfoEXT-address-08043# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     feature is not enabled, @address@ /must/ not be zero+--+-- -   #VUID-VkDescriptorAddressInfoEXT-None-08044# If @address@ is not+--     zero, @address@ /must/ be a valid device address at an offset within+--     a 'Vulkan.Core10.Handles.Buffer'+--+-- -   #VUID-VkDescriptorAddressInfoEXT-range-08045# @range@ /must/ be less+--     than or equal to the size of the buffer containing @address@ minus+--     the offset of @address@ from the base address of the buffer+--+-- -   #VUID-VkDescriptorAddressInfoEXT-range-08046# @range@ must not be+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkDescriptorAddressInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT'+--+-- -   #VUID-VkDescriptorAddressInfoEXT-pNext-pNext# @pNext@ /must/ be+--     @NULL@+--+-- -   #VUID-VkDescriptorAddressInfoEXT-format-parameter# @format@ /must/+--     be a valid 'Vulkan.Core10.Enums.Format.Format' value+--+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- feature is enabled, @address@ /can/ be zero. Loads from a null+-- descriptor return zero values and stores and atomics to a null+-- descriptor are discarded.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'DescriptorDataEXT', 'Vulkan.Core10.FundamentalTypes.DeviceAddress',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.Format.Format',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DescriptorAddressInfoEXT = DescriptorAddressInfoEXT+  { -- | @address@ is either @0@ or a device address at an offset in a buffer,+    -- where the base address can be queried from+    -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress'.+    address :: DeviceAddress+  , -- | @range@ is the size in bytes of the buffer or buffer view used by the+    -- descriptor.+    range :: DeviceSize+  , -- | @format@ is the format of the data elements in the buffer view and is+    -- ignored for buffers.+    format :: Format+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DescriptorAddressInfoEXT)+#endif+deriving instance Show DescriptorAddressInfoEXT++instance ToCStruct DescriptorAddressInfoEXT where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DescriptorAddressInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (address)+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (range)+    poke ((p `plusPtr` 32 :: Ptr Format)) (format)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (zero)+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Format)) (zero)+    f++instance FromCStruct DescriptorAddressInfoEXT where+  peekCStruct p = do+    address <- peek @DeviceAddress ((p `plusPtr` 16 :: Ptr DeviceAddress))+    range <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))+    format <- peek @Format ((p `plusPtr` 32 :: Ptr Format))+    pure $ DescriptorAddressInfoEXT+             address range format++instance Storable DescriptorAddressInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DescriptorAddressInfoEXT where+  zero = DescriptorAddressInfoEXT+           zero+           zero+           zero+++-- | VkDescriptorBufferBindingInfoEXT - Structure specifying descriptor+-- buffer binding information+--+-- == Valid Usage+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056#+--     If+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-bufferlessPushDescriptors ::bufferlessPushDescriptors>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', and @usage@ contains+--     VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, then the+--     @pNext@ chain /must/ include a+--     'DescriptorBufferBindingPushDescriptorBufferHandleEXT' structure+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-address-08057# @address@+--     /must/ be aligned to+--     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@descriptorBufferOffsetAlignment@+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-usage-08122# If @usage@+--     includes+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT',+--     @address@ /must/ be an address within a valid buffer that was+--     created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-usage-08123# If @usage@+--     includes+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT',+--     @address@ /must/ be an address within a valid buffer that was+--     created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-usage-08124# If @usage@+--     includes+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT',+--     @address@ /must/ be an address within a valid buffer that was+--     created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-sType-sType# @sType@ /must/+--     be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT'+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-pNext-pNext# @pNext@ /must/+--     be @NULL@ or a pointer to a valid instance of+--     'DescriptorBufferBindingPushDescriptorBufferHandleEXT'+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-sType-unique# The @sType@+--     value of each struct in the @pNext@ chain /must/ be unique+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-usage-parameter# @usage@+--     /must/ be a valid combination of+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values+--+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-usage-requiredbitmask#+--     @usage@ /must/ not be @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlags',+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdBindDescriptorBuffersEXT'+data DescriptorBufferBindingInfoEXT (es :: [Type]) = DescriptorBufferBindingInfoEXT+  { -- No documentation found for Nested "VkDescriptorBufferBindingInfoEXT" "pNext"+    next :: Chain es+  , -- No documentation found for Nested "VkDescriptorBufferBindingInfoEXT" "address"+    address :: DeviceAddress+  , -- No documentation found for Nested "VkDescriptorBufferBindingInfoEXT" "usage"+    usage :: BufferUsageFlags+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DescriptorBufferBindingInfoEXT (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (DescriptorBufferBindingInfoEXT es)++instance Extensible DescriptorBufferBindingInfoEXT where+  extensibleTypeName = "DescriptorBufferBindingInfoEXT"+  setNext DescriptorBufferBindingInfoEXT{..} next' = DescriptorBufferBindingInfoEXT{next = next', ..}+  getNext DescriptorBufferBindingInfoEXT{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorBufferBindingInfoEXT e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @DescriptorBufferBindingPushDescriptorBufferHandleEXT = Just f+    | otherwise = Nothing++instance ( Extendss DescriptorBufferBindingInfoEXT es+         , PokeChain es ) => ToCStruct (DescriptorBufferBindingInfoEXT es) where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DescriptorBufferBindingInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (address)+    lift $ poke ((p `plusPtr` 24 :: Ptr BufferUsageFlags)) (usage)+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (zero)+    lift $ poke ((p `plusPtr` 24 :: Ptr BufferUsageFlags)) (zero)+    lift $ f++instance ( Extendss DescriptorBufferBindingInfoEXT es+         , PeekChain es ) => FromCStruct (DescriptorBufferBindingInfoEXT es) where+  peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)+    address <- peek @DeviceAddress ((p `plusPtr` 16 :: Ptr DeviceAddress))+    usage <- peek @BufferUsageFlags ((p `plusPtr` 24 :: Ptr BufferUsageFlags))+    pure $ DescriptorBufferBindingInfoEXT+             next address usage++instance es ~ '[] => Zero (DescriptorBufferBindingInfoEXT es) where+  zero = DescriptorBufferBindingInfoEXT+           ()+           zero+           zero+++-- | VkDescriptorBufferBindingPushDescriptorBufferHandleEXT - Structure+-- specifying push descriptor buffer binding information+--+-- == Valid Usage+--+-- -   #VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-bufferlessPushDescriptors-08059#+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-bufferlessPushDescriptors ::bufferlessPushDescriptors>+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.Buffer',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DescriptorBufferBindingPushDescriptorBufferHandleEXT = DescriptorBufferBindingPushDescriptorBufferHandleEXT+  { -- | #VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-buffer-parameter#+    -- @buffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+    buffer :: Buffer }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DescriptorBufferBindingPushDescriptorBufferHandleEXT)+#endif+deriving instance Show DescriptorBufferBindingPushDescriptorBufferHandleEXT++instance ToCStruct DescriptorBufferBindingPushDescriptorBufferHandleEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DescriptorBufferBindingPushDescriptorBufferHandleEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Buffer)) (buffer)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)+    f++instance FromCStruct DescriptorBufferBindingPushDescriptorBufferHandleEXT where+  peekCStruct p = do+    buffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))+    pure $ DescriptorBufferBindingPushDescriptorBufferHandleEXT+             buffer++instance Storable DescriptorBufferBindingPushDescriptorBufferHandleEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DescriptorBufferBindingPushDescriptorBufferHandleEXT where+  zero = DescriptorBufferBindingPushDescriptorBufferHandleEXT+           zero+++-- | VkDescriptorGetInfoEXT - Structure specifying parameters of descriptor+-- to get+--+-- == Valid Usage+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08018# @type@ /must/ not be+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'+--     or+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08019# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',+--     the @pCombinedImageSampler->sampler@ member of @data@ /must/ be a+--     'Vulkan.Core10.Handles.Sampler' created on @device@+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08020# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',+--     the @pCombinedImageSampler->imageView@ member of @data@ /must/ be a+--     'Vulkan.Core10.Handles.ImageView' created on @device@, or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08021# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT',+--     the @pInputAttachmentImage->imageView@ member of @data@ /must/ be a+--     'Vulkan.Core10.Handles.ImageView' created on @device@+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08022# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',+--     and if @pSampledImage@ is not @NULL@, the @pSampledImage->imageView@+--     member of @data@ /must/ be a 'Vulkan.Core10.Handles.ImageView'+--     created on @device@, or 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08023# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',+--     and if @pStorageImage@ is not @NULL@, the @pStorageImage->imageView@+--     member of @data@ /must/ be a 'Vulkan.Core10.Handles.ImageView'+--     created on @device@, or 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08024# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER',+--     @pUniformTexelBuffer@ is not @NULL@ and+--     @pUniformTexelBuffer->address@ is not zero,+--     @pUniformTexelBuffer->address@ must be an address within a+--     'Vulkan.Core10.Handles.Buffer' created on @device@+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08025# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER',+--     @pStorageTexelBuffer@ is not @NULL@ and+--     @pStorageTexelBuffer->address@ is not zero,+--     @pStorageTexelBuffer->address@ must be an address within a+--     'Vulkan.Core10.Handles.Buffer' created on @device@+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08026# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER',+--     @pUniformBuffer@ is not @NULL@ and @pUniformBuffer->address@ is not+--     zero, @pUniformBuffer->address@ must be an address within a+--     'Vulkan.Core10.Handles.Buffer' created on @device@+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08027# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER',+--     @pStorageBuffer@ is not @NULL@ and @pStorageBuffer->address@ is not+--     zero, @pStorageBuffer->address@ must be an address within a+--     'Vulkan.Core10.Handles.Buffer' created on @device@+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08028# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR'+--     and @accelerationStructure@ is not @0@, @accelerationStructure@+--     /must/ contain the address of a+--     'Vulkan.Extensions.Handles.AccelerationStructureKHR' created on+--     @device@+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-08029# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV'+--     and @accelerationStructure@ is not @0@, @accelerationStructure@+--     /must/ contain the handle of a+--     'Vulkan.Extensions.Handles.AccelerationStructureNV' created on+--     @device@, returned by+--     'Vulkan.Extensions.VK_NV_ray_tracing.getAccelerationStructureHandleNV'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkDescriptorGetInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT'+--+-- -   #VUID-VkDescriptorGetInfoEXT-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkDescriptorGetInfoEXT-type-parameter# @type@ /must/ be a+--     valid 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' value+--+-- -   #VUID-VkDescriptorGetInfoEXT-pSampler-parameter# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER', the+--     @pSampler@ member of @data@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.Handles.Sampler' handle+--+-- -   #VUID-VkDescriptorGetInfoEXT-pCombinedImageSampler-parameter# If+--     @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',+--     the @pCombinedImageSampler@ member of @data@ /must/ be a valid+--     pointer to a valid 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo'+--     structure+--+-- -   #VUID-VkDescriptorGetInfoEXT-pInputAttachmentImage-parameter# If+--     @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT',+--     the @pInputAttachmentImage@ member of @data@ /must/ be a valid+--     pointer to a valid 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo'+--     structure+--+-- -   #VUID-VkDescriptorGetInfoEXT-pSampledImage-parameter# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',+--     and if @pSampledImage@ is not @NULL@, the @pSampledImage@ member of+--     @data@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.DescriptorSet.DescriptorImageInfo' structure+--+-- -   #VUID-VkDescriptorGetInfoEXT-pStorageImage-parameter# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',+--     and if @pStorageImage@ is not @NULL@, the @pStorageImage@ member of+--     @data@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.DescriptorSet.DescriptorImageInfo' structure+--+-- -   #VUID-VkDescriptorGetInfoEXT-pUniformTexelBuffer-parameter# If+--     @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER',+--     and if @pUniformTexelBuffer@ is not @NULL@, the+--     @pUniformTexelBuffer@ member of @data@ /must/ be a valid pointer to+--     a valid 'DescriptorAddressInfoEXT' structure+--+-- -   #VUID-VkDescriptorGetInfoEXT-pStorageTexelBuffer-parameter# If+--     @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER',+--     and if @pStorageTexelBuffer@ is not @NULL@, the+--     @pStorageTexelBuffer@ member of @data@ /must/ be a valid pointer to+--     a valid 'DescriptorAddressInfoEXT' structure+--+-- -   #VUID-VkDescriptorGetInfoEXT-pUniformBuffer-parameter# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER',+--     and if @pUniformBuffer@ is not @NULL@, the @pUniformBuffer@ member+--     of @data@ /must/ be a valid pointer to a valid+--     'DescriptorAddressInfoEXT' structure+--+-- -   #VUID-VkDescriptorGetInfoEXT-pStorageBuffer-parameter# If @type@ is+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER',+--     and if @pStorageBuffer@ is not @NULL@, the @pStorageBuffer@ member+--     of @data@ /must/ be a valid pointer to a valid+--     'DescriptorAddressInfoEXT' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'DescriptorDataEXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'getDescriptorEXT'+data DescriptorGetInfoEXT = DescriptorGetInfoEXT+  { -- | @type@ is the type of descriptor to get.+    type' :: DescriptorType+  , -- | @data@ is a structure containing the information needed to get the+    -- descriptor.+    data' :: DescriptorDataEXT+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DescriptorGetInfoEXT)+#endif+deriving instance Show DescriptorGetInfoEXT++instance ToCStruct DescriptorGetInfoEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DescriptorGetInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr DescriptorType)) (type')+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr DescriptorDataEXT)) (data') . ($ ())+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr DescriptorType)) (zero)+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr DescriptorDataEXT)) (zero) . ($ ())+    lift $ f++instance FromCStruct DescriptorGetInfoEXT where+  peekCStruct p = do+    type' <- peek @DescriptorType ((p `plusPtr` 16 :: Ptr DescriptorType))+    data' <- peekDescriptorDataEXT type' ((p `plusPtr` 24 :: Ptr DescriptorDataEXT))+    pure $ DescriptorGetInfoEXT+             type' data'++instance Zero DescriptorGetInfoEXT where+  zero = DescriptorGetInfoEXT+           zero+           zero+++-- | VkBufferCaptureDescriptorDataInfoEXT - Structure specifying a buffer for+-- descriptor capture+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.Buffer',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getBufferOpaqueCaptureDescriptorDataEXT'+data BufferCaptureDescriptorDataInfoEXT = BufferCaptureDescriptorDataInfoEXT+  { -- | @buffer@ is the 'Vulkan.Core10.Handles.Buffer' handle of the buffer to+    -- get opaque capture data for.+    --+    -- #VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-08075# @buffer@ /must/+    -- have been created with+    -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+    -- set in 'Vulkan.Core10.Buffer.BufferCreateInfo'::@flags@+    --+    -- #VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-parameter# @buffer@+    -- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+    buffer :: Buffer }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferCaptureDescriptorDataInfoEXT)+#endif+deriving instance Show BufferCaptureDescriptorDataInfoEXT++instance ToCStruct BufferCaptureDescriptorDataInfoEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p BufferCaptureDescriptorDataInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Buffer)) (buffer)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)+    f++instance FromCStruct BufferCaptureDescriptorDataInfoEXT where+  peekCStruct p = do+    buffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))+    pure $ BufferCaptureDescriptorDataInfoEXT+             buffer++instance Storable BufferCaptureDescriptorDataInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferCaptureDescriptorDataInfoEXT where+  zero = BufferCaptureDescriptorDataInfoEXT+           zero+++-- | VkImageCaptureDescriptorDataInfoEXT - Structure specifying an image for+-- descriptor capture+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getImageOpaqueCaptureDescriptorDataEXT'+data ImageCaptureDescriptorDataInfoEXT = ImageCaptureDescriptorDataInfoEXT+  { -- | @image@ is the 'Vulkan.Core10.Handles.Image' handle of the image to get+    -- opaque capture data for.+    --+    -- #VUID-VkImageCaptureDescriptorDataInfoEXT-image-08079# @image@ /must/+    -- have been created with+    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+    -- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@+    --+    -- #VUID-VkImageCaptureDescriptorDataInfoEXT-image-parameter# @image@+    -- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+    image :: Image }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageCaptureDescriptorDataInfoEXT)+#endif+deriving instance Show ImageCaptureDescriptorDataInfoEXT++instance ToCStruct ImageCaptureDescriptorDataInfoEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageCaptureDescriptorDataInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Image)) (image)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+    f++instance FromCStruct ImageCaptureDescriptorDataInfoEXT where+  peekCStruct p = do+    image <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+    pure $ ImageCaptureDescriptorDataInfoEXT+             image++instance Storable ImageCaptureDescriptorDataInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageCaptureDescriptorDataInfoEXT where+  zero = ImageCaptureDescriptorDataInfoEXT+           zero+++-- | VkImageViewCaptureDescriptorDataInfoEXT - Structure specifying an image+-- view for descriptor capture+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.ImageView',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getImageViewOpaqueCaptureDescriptorDataEXT'+data ImageViewCaptureDescriptorDataInfoEXT = ImageViewCaptureDescriptorDataInfoEXT+  { -- | @imageView@ is the 'Vulkan.Core10.Handles.ImageView' handle of the image+    -- view to get opaque capture data for.+    --+    -- #VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-08083#+    -- @imageView@ /must/ have been created with+    -- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+    -- set in 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@flags@+    --+    -- #VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-parameter#+    -- @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView' handle+    imageView :: ImageView }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageViewCaptureDescriptorDataInfoEXT)+#endif+deriving instance Show ImageViewCaptureDescriptorDataInfoEXT++instance ToCStruct ImageViewCaptureDescriptorDataInfoEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageViewCaptureDescriptorDataInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ImageView)) (zero)+    f++instance FromCStruct ImageViewCaptureDescriptorDataInfoEXT where+  peekCStruct p = do+    imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))+    pure $ ImageViewCaptureDescriptorDataInfoEXT+             imageView++instance Storable ImageViewCaptureDescriptorDataInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageViewCaptureDescriptorDataInfoEXT where+  zero = ImageViewCaptureDescriptorDataInfoEXT+           zero+++-- | VkSamplerCaptureDescriptorDataInfoEXT - Structure specifying a sampler+-- for descriptor capture+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Handles.Sampler',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getSamplerOpaqueCaptureDescriptorDataEXT'+data SamplerCaptureDescriptorDataInfoEXT = SamplerCaptureDescriptorDataInfoEXT+  { -- | @sampler@ is the 'Vulkan.Core10.Handles.Sampler' handle of the sampler+    -- to get opaque capture data for.+    --+    -- #VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-08087# @sampler@+    -- /must/ have been created with+    -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+    -- set in 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@flags@+    --+    -- #VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-parameter# @sampler@+    -- /must/ be a valid 'Vulkan.Core10.Handles.Sampler' handle+    sampler :: Sampler }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SamplerCaptureDescriptorDataInfoEXT)+#endif+deriving instance Show SamplerCaptureDescriptorDataInfoEXT++instance ToCStruct SamplerCaptureDescriptorDataInfoEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SamplerCaptureDescriptorDataInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Sampler)) (sampler)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Sampler)) (zero)+    f++instance FromCStruct SamplerCaptureDescriptorDataInfoEXT where+  peekCStruct p = do+    sampler <- peek @Sampler ((p `plusPtr` 16 :: Ptr Sampler))+    pure $ SamplerCaptureDescriptorDataInfoEXT+             sampler++instance Storable SamplerCaptureDescriptorDataInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SamplerCaptureDescriptorDataInfoEXT where+  zero = SamplerCaptureDescriptorDataInfoEXT+           zero+++-- | VkAccelerationStructureCaptureDescriptorDataInfoEXT - Structure+-- specifying an acceleration structure for descriptor capture+--+-- == Valid Usage+--+-- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08091#+--     If @accelerationStructure@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' then+--     @accelerationStructure@ /must/ have been created with+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--     set in+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR'::@createFlags@+--+-- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08092#+--     If @accelerationStructureNV@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' then+--     @accelerationStructureNV@ /must/ have been created with+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--     set in+--     'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV'::info::@flags@+--+-- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08093#+--     If @accelerationStructure@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' then+--     @accelerationStructureNV@ /must/ be+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08094#+--     If @accelerationStructureNV@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' then+--     @accelerationStructure@ /must/ be+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-sType-sType#+--     @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+-- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-pNext-pNext#+--     @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-parameter#+--     If @accelerationStructure@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @accelerationStructure@+--     /must/ be a valid+--     'Vulkan.Extensions.Handles.AccelerationStructureKHR' handle+--+-- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-parameter#+--     If @accelerationStructureNV@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @accelerationStructureNV@+--     /must/ be a valid+--     'Vulkan.Extensions.Handles.AccelerationStructureNV' handle+--+-- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-commonparent#+--     Both of @accelerationStructure@, and @accelerationStructureNV@ that+--     are valid handles of non-ignored parameters /must/ have been+--     created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>,+-- 'Vulkan.Extensions.Handles.AccelerationStructureKHR',+-- 'Vulkan.Extensions.Handles.AccelerationStructureNV',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getAccelerationStructureOpaqueCaptureDescriptorDataEXT'+data AccelerationStructureCaptureDescriptorDataInfoEXT = AccelerationStructureCaptureDescriptorDataInfoEXT+  { -- | @accelerationStructure@ is the+    -- 'Vulkan.Extensions.Handles.AccelerationStructureKHR' handle of the+    -- acceleration structure to get opaque capture data for.+    accelerationStructure :: AccelerationStructureKHR+  , -- | @accelerationStructureNV@ is the+    -- 'Vulkan.Extensions.Handles.AccelerationStructureNV' handle of the+    -- acceleration structure to get opaque capture data for.+    accelerationStructureNV :: AccelerationStructureNV+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (AccelerationStructureCaptureDescriptorDataInfoEXT)+#endif+deriving instance Show AccelerationStructureCaptureDescriptorDataInfoEXT++instance ToCStruct AccelerationStructureCaptureDescriptorDataInfoEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p AccelerationStructureCaptureDescriptorDataInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr AccelerationStructureKHR)) (accelerationStructure)+    poke ((p `plusPtr` 24 :: Ptr AccelerationStructureNV)) (accelerationStructureNV)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct AccelerationStructureCaptureDescriptorDataInfoEXT where+  peekCStruct p = do+    accelerationStructure <- peek @AccelerationStructureKHR ((p `plusPtr` 16 :: Ptr AccelerationStructureKHR))+    accelerationStructureNV <- peek @AccelerationStructureNV ((p `plusPtr` 24 :: Ptr AccelerationStructureNV))+    pure $ AccelerationStructureCaptureDescriptorDataInfoEXT+             accelerationStructure accelerationStructureNV++instance Storable AccelerationStructureCaptureDescriptorDataInfoEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero AccelerationStructureCaptureDescriptorDataInfoEXT where+  zero = AccelerationStructureCaptureDescriptorDataInfoEXT+           zero+           zero+++-- | VkOpaqueCaptureDescriptorDataCreateInfoEXT - Structure specifying opaque+-- capture descriptor data+--+-- = Description+--+-- During replay, opaque descriptor capture data /can/ be specified by+-- adding a 'OpaqueCaptureDescriptorDataCreateInfoEXT' structure to the+-- relevant @pNext@ chain of a 'Vulkan.Core10.Buffer.BufferCreateInfo',+-- 'Vulkan.Core10.Image.ImageCreateInfo',+-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',+-- 'Vulkan.Core10.Sampler.SamplerCreateInfo',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV'+-- or+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR'+-- structure.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data OpaqueCaptureDescriptorDataCreateInfoEXT = OpaqueCaptureDescriptorDataCreateInfoEXT+  { -- | @opaqueCaptureDescriptorData@ is a pointer to a user-allocated buffer+    -- containing opaque capture data retrieved using+    -- 'getBufferOpaqueCaptureDescriptorDataEXT',+    -- 'getImageOpaqueCaptureDescriptorDataEXT',+    -- 'getImageViewOpaqueCaptureDescriptorDataEXT',+    -- 'getSamplerOpaqueCaptureDescriptorDataEXT', or+    -- 'getAccelerationStructureOpaqueCaptureDescriptorDataEXT'.+    --+    -- #VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-opaqueCaptureDescriptorData-parameter#+    -- @opaqueCaptureDescriptorData@ /must/ be a pointer value+    opaqueCaptureDescriptorData :: Ptr () }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (OpaqueCaptureDescriptorDataCreateInfoEXT)+#endif+deriving instance Show OpaqueCaptureDescriptorDataCreateInfoEXT++instance ToCStruct OpaqueCaptureDescriptorDataCreateInfoEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p OpaqueCaptureDescriptorDataCreateInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (opaqueCaptureDescriptorData)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (zero)+    f++instance FromCStruct OpaqueCaptureDescriptorDataCreateInfoEXT where+  peekCStruct p = do+    opaqueCaptureDescriptorData <- peek @(Ptr ()) ((p `plusPtr` 16 :: Ptr (Ptr ())))+    pure $ OpaqueCaptureDescriptorDataCreateInfoEXT+             opaqueCaptureDescriptorData++instance Storable OpaqueCaptureDescriptorDataCreateInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero OpaqueCaptureDescriptorDataCreateInfoEXT where+  zero = OpaqueCaptureDescriptorDataCreateInfoEXT+           zero+++data DescriptorDataEXT+  = ASampler Sampler+  | ACombinedImageSampler DescriptorImageInfo+  | AnInputAttachmentImage DescriptorImageInfo+  | ASampledImage (Maybe DescriptorImageInfo)+  | AStorageImage (Maybe DescriptorImageInfo)+  | AnUniformTexelBuffer (Maybe DescriptorAddressInfoEXT)+  | AStorageTexelBuffer (Maybe DescriptorAddressInfoEXT)+  | AnUniformBuffer (Maybe DescriptorAddressInfoEXT)+  | AStorageBuffer (Maybe DescriptorAddressInfoEXT)+  | AnAccelerationStructure DeviceAddress+  deriving (Show)++instance ToCStruct DescriptorDataEXT where+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct :: Ptr DescriptorDataEXT -> DescriptorDataEXT -> IO a -> IO a+  pokeCStruct p = (. const) . runContT .  \case+    ASampler v -> do+      pSampler <- ContT $ with (v)+      lift $ poke (castPtr @_ @(Ptr Sampler) p) pSampler+    ACombinedImageSampler v -> do+      pCombinedImageSampler <- ContT $ withCStruct (v)+      lift $ poke (castPtr @_ @(Ptr DescriptorImageInfo) p) pCombinedImageSampler+    AnInputAttachmentImage v -> do+      pInputAttachmentImage <- ContT $ withCStruct (v)+      lift $ poke (castPtr @_ @(Ptr DescriptorImageInfo) p) pInputAttachmentImage+    ASampledImage v -> do+      pSampledImage <- case (v) of+        Nothing -> pure nullPtr+        Just j -> ContT $ withCStruct (j)+      lift $ poke (castPtr @_ @(Ptr DescriptorImageInfo) p) pSampledImage+    AStorageImage v -> do+      pStorageImage <- case (v) of+        Nothing -> pure nullPtr+        Just j -> ContT $ withCStruct (j)+      lift $ poke (castPtr @_ @(Ptr DescriptorImageInfo) p) pStorageImage+    AnUniformTexelBuffer v -> do+      pUniformTexelBuffer <- case (v) of+        Nothing -> pure nullPtr+        Just j -> ContT $ withCStruct (j)+      lift $ poke (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p) pUniformTexelBuffer+    AStorageTexelBuffer v -> do+      pStorageTexelBuffer <- case (v) of+        Nothing -> pure nullPtr+        Just j -> ContT $ withCStruct (j)+      lift $ poke (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p) pStorageTexelBuffer+    AnUniformBuffer v -> do+      pUniformBuffer <- case (v) of+        Nothing -> pure nullPtr+        Just j -> ContT $ withCStruct (j)+      lift $ poke (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p) pUniformBuffer+    AStorageBuffer v -> do+      pStorageBuffer <- case (v) of+        Nothing -> pure nullPtr+        Just j -> ContT $ withCStruct (j)+      lift $ poke (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p) pStorageBuffer+    AnAccelerationStructure v -> lift $ poke (castPtr @_ @DeviceAddress p) (v)+  pokeZeroCStruct :: Ptr DescriptorDataEXT -> IO b -> IO b+  pokeZeroCStruct _ f = f+  cStructSize = 8+  cStructAlignment = 8++instance Zero DescriptorDataEXT where+  zero = ASampler zero++peekDescriptorDataEXT :: DescriptorType -> Ptr DescriptorDataEXT -> IO DescriptorDataEXT+peekDescriptorDataEXT tag p = case tag of+  DESCRIPTOR_TYPE_SAMPLER -> ASampler <$> (peek @Sampler =<< peek (castPtr @_ @(Ptr Sampler) p))+  DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER -> ACombinedImageSampler <$> (peekCStruct @DescriptorImageInfo =<< peek (castPtr @_ @(Ptr DescriptorImageInfo) p))+  DESCRIPTOR_TYPE_INPUT_ATTACHMENT -> AnInputAttachmentImage <$> (peekCStruct @DescriptorImageInfo =<< peek (castPtr @_ @(Ptr DescriptorImageInfo) p))+  DESCRIPTOR_TYPE_SAMPLED_IMAGE -> ASampledImage <$> (do+    pSampledImage <- peek @(Ptr DescriptorImageInfo) (castPtr @_ @(Ptr DescriptorImageInfo) p)+    maybePeek (\j -> peekCStruct @DescriptorImageInfo (j)) pSampledImage)+  DESCRIPTOR_TYPE_STORAGE_IMAGE -> AStorageImage <$> (do+    pStorageImage <- peek @(Ptr DescriptorImageInfo) (castPtr @_ @(Ptr DescriptorImageInfo) p)+    maybePeek (\j -> peekCStruct @DescriptorImageInfo (j)) pStorageImage)+  DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER -> AnUniformTexelBuffer <$> (do+    pUniformTexelBuffer <- peek @(Ptr DescriptorAddressInfoEXT) (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p)+    maybePeek (\j -> peekCStruct @DescriptorAddressInfoEXT (j)) pUniformTexelBuffer)+  DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER -> AStorageTexelBuffer <$> (do+    pStorageTexelBuffer <- peek @(Ptr DescriptorAddressInfoEXT) (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p)+    maybePeek (\j -> peekCStruct @DescriptorAddressInfoEXT (j)) pStorageTexelBuffer)+  DESCRIPTOR_TYPE_UNIFORM_BUFFER -> AnUniformBuffer <$> (do+    pUniformBuffer <- peek @(Ptr DescriptorAddressInfoEXT) (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p)+    maybePeek (\j -> peekCStruct @DescriptorAddressInfoEXT (j)) pUniformBuffer)+  DESCRIPTOR_TYPE_STORAGE_BUFFER -> AStorageBuffer <$> (do+    pStorageBuffer <- peek @(Ptr DescriptorAddressInfoEXT) (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p)+    maybePeek (\j -> peekCStruct @DescriptorAddressInfoEXT (j)) pStorageBuffer)+  DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR -> AnAccelerationStructure <$> (peek @DeviceAddress (castPtr @_ @DeviceAddress p))+++type EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION"+pattern EXT_DESCRIPTOR_BUFFER_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1+++type EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer"++-- No documentation found for TopLevel "VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME"+pattern EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer"+
+ src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs-boot view
@@ -0,0 +1,430 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_descriptor_buffer - device extension+--+-- == VK_EXT_descriptor_buffer+--+-- [__Name String__]+--     @VK_EXT_descriptor_buffer@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     317+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+--     -   Requires @VK_KHR_buffer_device_address@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_KHR_synchronization2@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_EXT_descriptor_indexing@ to be enabled for any+--         device-level functionality+--+-- [__Contact__]+--+--     -   Tobias Hector+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_descriptor_buffer] @tobski%0A*Here describe the issue or question you have about the VK_EXT_descriptor_buffer extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_descriptor_buffer.adoc VK_EXT_descriptor_buffer>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-06-07+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Tobias Hector, AMD+--+--     -   Stu Smith, AMD+--+--     -   Maciej Jesionowski, AMD+--+--     -   Boris Zanin, AMD+--+--     -   Hans-Kristian Arntzen, Valve+--+--     -   Connor Abbott, Valve+--+--     -   Baldur Karlsson, Valve+--+--     -   Mike Blumenkrantz, Valve+--+--     -   Graeme Leese, Broadcom+--+--     -   Jan-Harald Fredriksen, Arm+--+--     -   Rodrigo Locatti, NVIDIA+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Piers Daniell, NVIDIA+--+--     -   Jeff Leger, QUALCOMM+--+--     -   Lionel Landwerlin, Intel+--+--     -   Slawomir Grajewski, Intel+--+-- == Description+--+-- This extension introduces new commands to put shader-accessible+-- descriptors directly in memory, making the management of descriptor data+-- more explicit.+--+-- == New Commands+--+-- -   'cmdBindDescriptorBufferEmbeddedSamplersEXT'+--+-- -   'cmdBindDescriptorBuffersEXT'+--+-- -   'cmdSetDescriptorBufferOffsetsEXT'+--+-- -   'getBufferOpaqueCaptureDescriptorDataEXT'+--+-- -   'getDescriptorEXT'+--+-- -   'getDescriptorSetLayoutBindingOffsetEXT'+--+-- -   'getDescriptorSetLayoutSizeEXT'+--+-- -   'getImageOpaqueCaptureDescriptorDataEXT'+--+-- -   'getImageViewOpaqueCaptureDescriptorDataEXT'+--+-- -   'getSamplerOpaqueCaptureDescriptorDataEXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>+-- is supported:+--+-- -   'getAccelerationStructureOpaqueCaptureDescriptorDataEXT'+--+-- == New Structures+--+-- -   'BufferCaptureDescriptorDataInfoEXT'+--+-- -   'DescriptorAddressInfoEXT'+--+-- -   'DescriptorBufferBindingInfoEXT'+--+-- -   'DescriptorGetInfoEXT'+--+-- -   'ImageCaptureDescriptorDataInfoEXT'+--+-- -   'ImageViewCaptureDescriptorDataInfoEXT'+--+-- -   'SamplerCaptureDescriptorDataInfoEXT'+--+-- -   Extending 'Vulkan.Core10.Buffer.BufferCreateInfo',+--     'Vulkan.Core10.Image.ImageCreateInfo',+--     'Vulkan.Core10.ImageView.ImageViewCreateInfo',+--     'Vulkan.Core10.Sampler.SamplerCreateInfo',+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR',+--     'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV':+--+--     -   'OpaqueCaptureDescriptorDataCreateInfoEXT'+--+-- -   Extending 'DescriptorBufferBindingInfoEXT':+--+--     -   'DescriptorBufferBindingPushDescriptorBufferHandleEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceDescriptorBufferFeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT'+--+--     -   'PhysicalDeviceDescriptorBufferPropertiesEXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>+-- is supported:+--+-- -   'AccelerationStructureCaptureDescriptorDataInfoEXT'+--+-- == New Unions+--+-- -   'DescriptorDataEXT'+--+-- == New Enum Constants+--+-- -   'EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME'+--+-- -   'EXT_DESCRIPTOR_BUFFER_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateFlagBitsKHR':+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits':+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.ImageViewCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SamplerCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>+-- is supported:+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT'+--+-- == Version History+--+-- -   Revision 1, 2021-06-07 (Stu Smith)+--+--     -   Initial revision+--+-- == See Also+--+-- 'BufferCaptureDescriptorDataInfoEXT', 'DescriptorAddressInfoEXT',+-- 'DescriptorBufferBindingInfoEXT',+-- 'DescriptorBufferBindingPushDescriptorBufferHandleEXT',+-- 'DescriptorDataEXT', 'DescriptorGetInfoEXT',+-- 'ImageCaptureDescriptorDataInfoEXT',+-- 'ImageViewCaptureDescriptorDataInfoEXT',+-- 'OpaqueCaptureDescriptorDataCreateInfoEXT',+-- 'PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',+-- 'PhysicalDeviceDescriptorBufferFeaturesEXT',+-- 'PhysicalDeviceDescriptorBufferPropertiesEXT',+-- 'SamplerCaptureDescriptorDataInfoEXT',+-- 'cmdBindDescriptorBufferEmbeddedSamplersEXT',+-- 'cmdBindDescriptorBuffersEXT', 'cmdSetDescriptorBufferOffsetsEXT',+-- 'getBufferOpaqueCaptureDescriptorDataEXT', 'getDescriptorEXT',+-- 'getDescriptorSetLayoutBindingOffsetEXT',+-- 'getDescriptorSetLayoutSizeEXT',+-- 'getImageOpaqueCaptureDescriptorDataEXT',+-- 'getImageViewOpaqueCaptureDescriptorDataEXT',+-- 'getSamplerOpaqueCaptureDescriptorDataEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_descriptor_buffer Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_descriptor_buffer  ( AccelerationStructureCaptureDescriptorDataInfoEXT+                                                   , BufferCaptureDescriptorDataInfoEXT+                                                   , DescriptorAddressInfoEXT+                                                   , DescriptorBufferBindingInfoEXT+                                                   , DescriptorBufferBindingPushDescriptorBufferHandleEXT+                                                   , DescriptorGetInfoEXT+                                                   , ImageCaptureDescriptorDataInfoEXT+                                                   , ImageViewCaptureDescriptorDataInfoEXT+                                                   , OpaqueCaptureDescriptorDataCreateInfoEXT+                                                   , PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT+                                                   , PhysicalDeviceDescriptorBufferFeaturesEXT+                                                   , PhysicalDeviceDescriptorBufferPropertiesEXT+                                                   , SamplerCaptureDescriptorDataInfoEXT+                                                   ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)+data AccelerationStructureCaptureDescriptorDataInfoEXT++instance ToCStruct AccelerationStructureCaptureDescriptorDataInfoEXT+instance Show AccelerationStructureCaptureDescriptorDataInfoEXT++instance FromCStruct AccelerationStructureCaptureDescriptorDataInfoEXT+++data BufferCaptureDescriptorDataInfoEXT++instance ToCStruct BufferCaptureDescriptorDataInfoEXT+instance Show BufferCaptureDescriptorDataInfoEXT++instance FromCStruct BufferCaptureDescriptorDataInfoEXT+++data DescriptorAddressInfoEXT++instance ToCStruct DescriptorAddressInfoEXT+instance Show DescriptorAddressInfoEXT++instance FromCStruct DescriptorAddressInfoEXT+++type role DescriptorBufferBindingInfoEXT nominal+data DescriptorBufferBindingInfoEXT (es :: [Type])++instance ( Extendss DescriptorBufferBindingInfoEXT es+         , PokeChain es ) => ToCStruct (DescriptorBufferBindingInfoEXT es)+instance Show (Chain es) => Show (DescriptorBufferBindingInfoEXT es)++instance ( Extendss DescriptorBufferBindingInfoEXT es+         , PeekChain es ) => FromCStruct (DescriptorBufferBindingInfoEXT es)+++data DescriptorBufferBindingPushDescriptorBufferHandleEXT++instance ToCStruct DescriptorBufferBindingPushDescriptorBufferHandleEXT+instance Show DescriptorBufferBindingPushDescriptorBufferHandleEXT++instance FromCStruct DescriptorBufferBindingPushDescriptorBufferHandleEXT+++data DescriptorGetInfoEXT++instance ToCStruct DescriptorGetInfoEXT+instance Show DescriptorGetInfoEXT++instance FromCStruct DescriptorGetInfoEXT+++data ImageCaptureDescriptorDataInfoEXT++instance ToCStruct ImageCaptureDescriptorDataInfoEXT+instance Show ImageCaptureDescriptorDataInfoEXT++instance FromCStruct ImageCaptureDescriptorDataInfoEXT+++data ImageViewCaptureDescriptorDataInfoEXT++instance ToCStruct ImageViewCaptureDescriptorDataInfoEXT+instance Show ImageViewCaptureDescriptorDataInfoEXT++instance FromCStruct ImageViewCaptureDescriptorDataInfoEXT+++data OpaqueCaptureDescriptorDataCreateInfoEXT++instance ToCStruct OpaqueCaptureDescriptorDataCreateInfoEXT+instance Show OpaqueCaptureDescriptorDataCreateInfoEXT++instance FromCStruct OpaqueCaptureDescriptorDataCreateInfoEXT+++data PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT++instance ToCStruct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT+instance Show PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT++instance FromCStruct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT+++data PhysicalDeviceDescriptorBufferFeaturesEXT++instance ToCStruct PhysicalDeviceDescriptorBufferFeaturesEXT+instance Show PhysicalDeviceDescriptorBufferFeaturesEXT++instance FromCStruct PhysicalDeviceDescriptorBufferFeaturesEXT+++data PhysicalDeviceDescriptorBufferPropertiesEXT++instance ToCStruct PhysicalDeviceDescriptorBufferPropertiesEXT+instance Show PhysicalDeviceDescriptorBufferPropertiesEXT++instance FromCStruct PhysicalDeviceDescriptorBufferPropertiesEXT+++data SamplerCaptureDescriptorDataInfoEXT++instance ToCStruct SamplerCaptureDescriptorDataInfoEXT+instance Show SamplerCaptureDescriptorDataInfoEXT++instance FromCStruct SamplerCaptureDescriptorDataInfoEXT+
src/Vulkan/Extensions/VK_EXT_mesh_shader.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] -----     -   Requires support for Vulkan 1.0+--     -   Requires support for Vulkan 1.1 -- --     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled --         for any device-level functionality@@ -461,14 +461,46 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawMeshTasksEXT-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08114# Descriptors in each bound --     descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08115# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08117# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-02700# A valid pipeline /must/ be --     bound to the pipeline bind point used by this command --@@ -2170,14 +2202,46 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02699# Descriptors in each+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08114# Descriptors in each --     bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08115# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08117# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02700# A valid pipeline --     /must/ be bound to the pipeline bind point used by this command --@@ -3870,13 +3934,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02699# Descriptors in+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114# Descriptors in --     each bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08115# If the+--     descriptors used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08116# Descriptors in+--     bound descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08117# If the+--     descriptors used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08119# If a descriptor+--     is dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02700# A valid --     pipeline /must/ be bound to the pipeline bind point used by this
src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] -----     -   Requires support for Vulkan 1.0+--     -   Requires support for Vulkan 1.1 -- --     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled --         for any device-level functionality
src/Vulkan/Extensions/VK_EXT_metal_objects.hs view
@@ -1283,8 +1283,8 @@ -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo' structure includes -- both 'ImportMetalSharedEventInfoEXT' and -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo',--- the @signaledValue@ property of the imported @MTLSharedEvent@ object--- will be set to @initialValue@ of+-- the @signaledValue@ property of the imported @id\<MTLSharedEvent>@+-- object will be set to @initialValue@ of -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo'. -- -- == Valid Usage (Implicit)
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -327,14 +327,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawMultiEXT-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDrawMultiEXT-None-08114# Descriptors in each bound --     descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDrawMultiEXT-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMultiEXT-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMultiEXT-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMultiEXT-None-08119# If a descriptor is dynamically+--     used with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDrawMultiEXT-None-02700# A valid pipeline /must/ be bound --     to the pipeline bind point used by this command --@@ -2099,13 +2130,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08114# Descriptors in each bound --     descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08115# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08117# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-02700# A valid pipeline /must/ --     be bound to the pipeline bind point used by this command
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -1513,13 +1513,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-02699# Descriptors in each+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08114# Descriptors in each --     bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08115# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08117# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-02700# A valid pipeline --     /must/ be bound to the pipeline bind point used by this command
src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs view
@@ -623,13 +623,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdSubpassShadingHUAWEI-None-02699# Descriptors in each+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08114# Descriptors in each --     bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08115# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08117# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-02700# A valid pipeline /must/ --     be bound to the pipeline bind point used by this command
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -1224,6 +1224,7 @@                                                         , AccelerationStructureCreateFlagsKHR                                                         , AccelerationStructureCreateFlagBitsKHR( ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR                                                                                                 , ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV+                                                                                                , ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT                                                                                                 , ..                                                                                                 )                                                         , CopyAccelerationStructureModeKHR( COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR@@ -1387,6 +1388,7 @@ import Vulkan.Core10.FundamentalTypes (Flags) import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.IndexType (IndexType)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (OpaqueCaptureDescriptorDataCreateInfoEXT) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -6043,15 +6045,31 @@ --     then @flags@ /must/ contain --     'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' --+-- -   #VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108# If+--     @createFlags@ includes+--     'ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',+--     the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-VkAccelerationStructureCreateInfoKHR-pNext-08109# If the+--     @pNext@ chain includes a+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+--     structure, @createFlags@ /must/ contain+--     'ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkAccelerationStructureCreateInfoKHR-sType-sType# @sType@ --     /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR' ----- -   #VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNext# @pNext@---     /must/ be @NULL@ or a pointer to a valid instance of+-- -   #VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNext# Each @pNext@+--     member of any structure (including this one) in the @pNext@ chain+--     /must/ be either @NULL@ or a pointer to a valid instance of --     'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV'+--     or+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT' -- -- -   #VUID-VkAccelerationStructureCreateInfoKHR-sType-unique# The @sType@ --     value of each struct in the @pNext@ chain /must/ be unique@@ -6112,6 +6130,7 @@   extends :: forall e b proxy. Typeable e => proxy e -> (Extends AccelerationStructureCreateInfoKHR e => b) -> Maybe b   extends _ f     | Just Refl <- eqT @e @AccelerationStructureMotionInfoNV = Just f+    | Just Refl <- eqT @e @OpaqueCaptureDescriptorDataCreateInfoEXT = Just f     | otherwise = Nothing  instance ( Extendss AccelerationStructureCreateInfoKHR es@@ -7337,6 +7356,14 @@ -- No documentation found for Nested "VkAccelerationStructureCreateFlagBitsKHR" "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV" pattern ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = AccelerationStructureCreateFlagBitsKHR 0x00000004 +-- | 'ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'+-- specifies that the acceleration structure /can/ be used with descriptor+-- buffers when capturing and replaying (e.g. for trace capture and+-- replay), see+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'+-- for more detail.+pattern ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = AccelerationStructureCreateFlagBitsKHR 0x00000008+ conNameAccelerationStructureCreateFlagBitsKHR :: String conNameAccelerationStructureCreateFlagBitsKHR = "AccelerationStructureCreateFlagBitsKHR" @@ -7352,6 +7379,10 @@   ,     ( ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV     , "MOTION_BIT_NV"+    )+  ,+    ( ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT+    , "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"     )   ] 
src/Vulkan/Extensions/VK_KHR_pipeline_library.hs view
@@ -135,6 +135,12 @@ --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' --     flag set --+-- -   #VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-08096# If any+--     element of @pLibraries@ was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     all elements /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+-- -- -   #VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07404# If @pipeline@ --     is being created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT',
src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs view
@@ -397,13 +397,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-02699# Descriptors in each+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08114# Descriptors in each --     bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08115# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08117# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-02700# A valid pipeline /must/ --     be bound to the pipeline bind point used by this command
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -1020,14 +1020,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdTraceRaysKHR-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdTraceRaysKHR-None-08114# Descriptors in each bound --     descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdTraceRaysKHR-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysKHR-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysKHR-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysKHR-None-08119# If a descriptor is dynamically+--     used with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdTraceRaysKHR-None-02700# A valid pipeline /must/ be bound --     to the pipeline bind point used by this command --@@ -2105,13 +2136,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdTraceRaysIndirectKHR-None-02699# Descriptors in each+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08114# Descriptors in each --     bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08115# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08117# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-02700# A valid pipeline /must/ --     be bound to the pipeline bind point used by this command
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -844,13 +844,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02699# Descriptors in+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08114# Descriptors in --     each bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08115# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08116# Descriptors in+--     bound descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08117# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02700# A valid pipeline --     /must/ be bound to the pipeline bind point used by this command
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -472,14 +472,46 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawMeshTasksNV-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08114# Descriptors in each bound --     descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08115# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08117# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDrawMeshTasksNV-None-02700# A valid pipeline /must/ be --     bound to the pipeline bind point used by this command --@@ -2154,14 +2186,46 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-02699# Descriptors in each+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08114# Descriptors in each --     bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08115# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08117# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-02700# A valid pipeline --     /must/ be bound to the pipeline bind point used by this command --@@ -3889,13 +3953,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699# Descriptors in+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08114# Descriptors in --     each bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08115# If the+--     descriptors used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08116# Descriptors in+--     bound descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08117# If the+--     descriptors used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08119# If a descriptor+--     is dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident. -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700# A valid pipeline --     /must/ be bound to the pipeline bind point used by this command
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -679,6 +679,7 @@ import Vulkan.Extensions.VK_KHR_acceleration_structure (GeometryTypeKHR) import Vulkan.Core10.Enums.IndexType (IndexType) import Vulkan.Extensions.VK_KHR_get_memory_requirements2 (MemoryRequirements2KHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (OpaqueCaptureDescriptorDataCreateInfoEXT) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.Core10.Handles (Pipeline)@@ -859,7 +860,7 @@   unsafe #endif   "dynamic" mkVkCreateAccelerationStructureNV-  :: FunPtr (Ptr Device_T -> Ptr AccelerationStructureCreateInfoNV -> Ptr AllocationCallbacks -> Ptr AccelerationStructureNV -> IO Result) -> Ptr Device_T -> Ptr AccelerationStructureCreateInfoNV -> Ptr AllocationCallbacks -> Ptr AccelerationStructureNV -> IO Result+  :: FunPtr (Ptr Device_T -> Ptr (SomeStruct AccelerationStructureCreateInfoNV) -> Ptr AllocationCallbacks -> Ptr AccelerationStructureNV -> IO Result) -> Ptr Device_T -> Ptr (SomeStruct AccelerationStructureCreateInfoNV) -> Ptr AllocationCallbacks -> Ptr AccelerationStructureNV -> IO Result  -- | vkCreateAccelerationStructureNV - Create a new acceleration structure -- object@@ -911,14 +912,16 @@ -- 'Vulkan.Extensions.Handles.AccelerationStructureNV', -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks', -- 'Vulkan.Core10.Handles.Device'-createAccelerationStructureNV :: forall io-                               . (MonadIO io)+createAccelerationStructureNV :: forall a io+                               . ( Extendss AccelerationStructureCreateInfoNV a+                                 , PokeChain a+                                 , MonadIO io )                               => -- | @device@ is the logical device that creates the buffer object.                                  Device                               -> -- | @pCreateInfo@ is a pointer to a 'AccelerationStructureCreateInfoNV'                                  -- structure containing parameters affecting creation of the acceleration                                  -- structure.-                                 AccelerationStructureCreateInfoNV+                                 (AccelerationStructureCreateInfoNV a)                               -> -- | @pAllocator@ controls host memory allocation as described in the                                  -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                  -- chapter.@@ -938,7 +941,7 @@   pPAccelerationStructure <- ContT $ bracket (callocBytes @AccelerationStructureNV 8) free   r <- lift $ traceAroundEvent "vkCreateAccelerationStructureNV" (vkCreateAccelerationStructureNV'                                                                     (deviceHandle (device))-                                                                    pCreateInfo+                                                                    (forgetExtensions pCreateInfo)                                                                     pAllocator                                                                     (pPAccelerationStructure))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))@@ -953,7 +956,7 @@ -- favourite resource management library) as the last argument. -- To just extract the pair pass '(,)' as the last argument. ---withAccelerationStructureNV :: forall io r . MonadIO io => Device -> AccelerationStructureCreateInfoNV -> Maybe AllocationCallbacks -> (io AccelerationStructureNV -> (AccelerationStructureNV -> io ()) -> r) -> r+withAccelerationStructureNV :: forall a io r . (Extendss AccelerationStructureCreateInfoNV a, PokeChain a, MonadIO io) => Device -> AccelerationStructureCreateInfoNV a -> Maybe AllocationCallbacks -> (io AccelerationStructureNV -> (AccelerationStructureNV -> io ()) -> r) -> r withAccelerationStructureNV device pCreateInfo pAllocator b =   b (createAccelerationStructureNV device pCreateInfo pAllocator)     (\(o0) -> destroyAccelerationStructureNV device o0 pAllocator)@@ -1823,14 +1826,45 @@ --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   #VUID-vkCmdTraceRaysNV-None-02699# Descriptors in each bound+-- -   #VUID-vkCmdTraceRaysNV-None-08114# Descriptors in each bound --     descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/---     be valid as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>---     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'---     bound to the pipeline bind point used by this command+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --+-- -   #VUID-vkCmdTraceRaysNV-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysNV-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysNV-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdTraceRaysNV-None-08119# If a descriptor is dynamically+--     used with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident.+-- -- -   #VUID-vkCmdTraceRaysNV-None-02700# A valid pipeline /must/ be bound --     to the pipeline bind point used by this command --@@ -3736,8 +3770,12 @@ --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV' -- -- -   #VUID-VkAccelerationStructureCreateInfoNV-pNext-pNext# @pNext@---     /must/ be @NULL@+--     /must/ be @NULL@ or a pointer to a valid instance of+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT' --+-- -   #VUID-VkAccelerationStructureCreateInfoNV-sType-unique# The @sType@+--     value of each struct in the @pNext@ chain /must/ be unique+-- -- -   #VUID-VkAccelerationStructureCreateInfoNV-info-parameter# @info@ --     /must/ be a valid 'AccelerationStructureInfoNV' structure --@@ -3748,8 +3786,10 @@ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize', -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'createAccelerationStructureNV'-data AccelerationStructureCreateInfoNV = AccelerationStructureCreateInfoNV-  { -- | @compactedSize@ is the size from the result of+data AccelerationStructureCreateInfoNV (es :: [Type]) = AccelerationStructureCreateInfoNV+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @compactedSize@ is the size from the result of     -- 'cmdWriteAccelerationStructuresPropertiesNV' if this acceleration     -- structure is going to be the target of a compacting copy.     compactedSize :: DeviceSize@@ -3759,15 +3799,26 @@   }   deriving (Typeable) #if defined(GENERIC_INSTANCES)-deriving instance Generic (AccelerationStructureCreateInfoNV)+deriving instance Generic (AccelerationStructureCreateInfoNV (es :: [Type])) #endif-deriving instance Show AccelerationStructureCreateInfoNV+deriving instance Show (Chain es) => Show (AccelerationStructureCreateInfoNV es) -instance ToCStruct AccelerationStructureCreateInfoNV where+instance Extensible AccelerationStructureCreateInfoNV where+  extensibleTypeName = "AccelerationStructureCreateInfoNV"+  setNext AccelerationStructureCreateInfoNV{..} next' = AccelerationStructureCreateInfoNV{next = next', ..}+  getNext AccelerationStructureCreateInfoNV{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends AccelerationStructureCreateInfoNV e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @OpaqueCaptureDescriptorDataCreateInfoEXT = Just f+    | otherwise = Nothing++instance ( Extendss AccelerationStructureCreateInfoNV es+         , PokeChain es ) => ToCStruct (AccelerationStructureCreateInfoNV es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p AccelerationStructureCreateInfoNV{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''     lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (compactedSize)     ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr AccelerationStructureInfoNV)) (info) . ($ ())     lift $ f@@ -3775,20 +3826,25 @@   cStructAlignment = 8   pokeZeroCStruct p f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)     ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr AccelerationStructureInfoNV)) (zero) . ($ ())     lift $ f -instance FromCStruct AccelerationStructureCreateInfoNV where+instance ( Extendss AccelerationStructureCreateInfoNV es+         , PeekChain es ) => FromCStruct (AccelerationStructureCreateInfoNV es) where   peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)     compactedSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))     info <- peekCStruct @AccelerationStructureInfoNV ((p `plusPtr` 24 :: Ptr AccelerationStructureInfoNV))     pure $ AccelerationStructureCreateInfoNV-             compactedSize info+             next compactedSize info -instance Zero AccelerationStructureCreateInfoNV where+instance es ~ '[] => Zero (AccelerationStructureCreateInfoNV es) where   zero = AccelerationStructureCreateInfoNV+           ()            zero            zero 
src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot view
@@ -488,12 +488,15 @@ import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)-data AccelerationStructureCreateInfoNV+type role AccelerationStructureCreateInfoNV nominal+data AccelerationStructureCreateInfoNV (es :: [Type]) -instance ToCStruct AccelerationStructureCreateInfoNV-instance Show AccelerationStructureCreateInfoNV+instance ( Extendss AccelerationStructureCreateInfoNV es+         , PokeChain es ) => ToCStruct (AccelerationStructureCreateInfoNV es)+instance Show (Chain es) => Show (AccelerationStructureCreateInfoNV es) -instance FromCStruct AccelerationStructureCreateInfoNV+instance ( Extendss AccelerationStructureCreateInfoNV es+         , PeekChain es ) => FromCStruct (AccelerationStructureCreateInfoNV es)   data AccelerationStructureInfoNV
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 234+pattern HEADER_VERSION = 235   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 234+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 235   pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.23.4+version:        3.24 synopsis:       Bindings to the Vulkan graphics API. description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category:       Graphics@@ -330,6 +330,7 @@       Vulkan.Extensions.VK_EXT_depth_clip_control       Vulkan.Extensions.VK_EXT_depth_clip_enable       Vulkan.Extensions.VK_EXT_depth_range_unrestricted+      Vulkan.Extensions.VK_EXT_descriptor_buffer       Vulkan.Extensions.VK_EXT_descriptor_indexing       Vulkan.Extensions.VK_EXT_device_address_binding_report       Vulkan.Extensions.VK_EXT_device_fault